Rubrik: Hilfe | VB-Versionen: VB2005, VB2008 | 10.07.09 |
Online-Hilfesystem (Internet) in eigene Anwendung integrieren Ein einfacher Weg, Webseiten aus dem Internet als Online-Hilfe für die eigene Anwendung zur Verfügung zu stellen. | ||
Autor: Thorsten Petersen | Bewertung: | Views: 11.625 |
ohne Homepage | System: Win2k, WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Ich hatte das Problem eine Hilfe für meine Programme zu erstellen. Die Hilfe von MS war mir zu kompliziert. Da ich sowieso eine Internetseite habe: wiki.th-petersen.de und dort ein wiki auf Basis http://www.dokuwiki.org laufen habe kam die Idee, diese als Hilfesystem zu benutzen.
Kleiner Nebeneffect das Hilfesystem wächst von alleine...
Die Funktion HelpRequested wird aufgerufen bei Druck auf F1. Abhängig von der Mausposition wird nun festgestellt welches Control sich dort befindet und anhand der manuell gestezten .Tag Eigenschaft der Controls ein Link zusammengebastelt.
Viel Spaß damit...
#Region "Hilfe Einbindung" Private Sub HilfeImInternetToolStripMenuItem_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles HilfeImInternetToolStripMenuItem.Click Dim oAdresse As String = oHilfeAdresse + "iv_eigenschaften:iv_eigenschaften" '" + _ My.Application.Info.ProductName.ToLower System.Diagnostics.Process.Start(oAdresse) ' Bsp: "http://127.0.0.1/wiki-programme/doku.php?id=petivautoparameter etivautoparameter" End Sub
Private Sub Eigenschaftenfenster_HelpRequested(ByVal sender As Object, _ ByVal hlpevent As System.Windows.Forms.HelpEventArgs) Handles Me.HelpRequested Dim oAdresse As String = oHilfeAdresse + "iv_eigenschaften:" '+ _ My.Application.Info.ProductName.ToLower + ":" '+ My.Application.Info.ProductName.ToLower Dim oGPt As New Point(sender.MousePosition.X, sender.MousePosition.Y) Dim oLPt As Point = Me.PointToClient(oGPt) Dim oControl As Control = Me.GetChildAtPoint(oLPt, GetChildAtPointSkip.Transparent) If oControl Is Nothing Then oAdresse = oHilfeAdresse + "iv_eigenschaften:iv_eigenschaften" Else Select Case oControl.Name Case "SplitContainer2" oLPt = SplitContainer2.PointToClient(oGPt) oAdresse = oAdresse + SplitContainer2.GetChildAtPoint(oLPt).Tag.ToString Case "MenuStrip1" Dim oMSItem As System.Windows.Forms.ToolStripMenuItem oMSItem = MenuStrip1.GetItemAt(oLPt.X, oLPt.Y) oAdresse = oAdresse + oMSItem.Tag.ToString Case Else oAdresse = oAdresse + Me.GetChildAtPoint(oLPt).Tag.ToString End Select End If System.Diagnostics.Process.Start(oAdresse) End Sub #End Region