Rubrik: Hilfe | VB-Versionen: VB.NET | 21.05.07 |
![]() Anwendung des HelpProviders in VB.Net "Orcas" | ||
Autor: ![]() | Bewertung: ![]() ![]() ![]() ![]() ![]() | Views: 13.229 |
ohne Homepage | System: WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 | kein Beispielprojekt |
Dieses Thema wird sehr ausführlich auf dieser Internetseite behandelt:
http://www.help-info.de/de/Visual_Basic_net/vbnet.htm
Allerdings hat sich inzwischen schon wieder ein wenig getan. Bei VB.Net "Orcas" gestaltet sich die Hilfsanwendung noch etwas einfacher als bei den älteren Versionen. Es ist nahezu ohne eine Zeile Code möglich, eine komplette HTML-Hilfe in ein Projekt einzubinden. Dazu sind folgende Schritte nötig:
- Man erstellt eine HTML-Hilfe (chm-Datei) und versieht die einzelnen Themen mit eindeutigen Topic-ID's. ("Helpmaker" z.B. ist zwar nicht das professionellste Mittel, aber sehr einfach zu bedienen und Freeware!)
- Man fügt jedem Formular im VB.Net-Projekt eine HelpProvider-Komponente hinzu (der Button mit der "F1"-Bezeichnung aus der Werkzeugkiste). Dieser Komponente gibt man unter der Eigenschaft HelpNameSpace den Pfad zur Hilfe-Datei an. Das wird normalerweise während der Laufzeit zu erledigen sein, da das Programm später ja auch auf anderen Rechnern laufen und seine Hilfe finden soll. Also unter Form_Load sollte dann eine Codezeile auftauchen, wie diese:
HelpProvider1.HelpNamespace = Application.StartupPath & "\Hilfe\MyProghilfe.chm"
- Jetzt hat man Folgendes erreicht. Jedem Hilfe-fähigen Element dieses Formulars werden jetzt zusätzlich drei Eigenschaften für seine Hilfe hinzugefügt:
- HelpKeyword on HelpProvider1
- HelpNavigator on HelpProvider1
- HelpString on HelpProvider1
Mit diesen drei Eigenschaften kann man eigendlich alles regeln, was das Herz begehrt solange man sich mit der Keyboardtaste "F1" oder dem Helpbutton des Formulars "?" zufrieden gibt.
Je nachdem, welche dieser drei Eigenschaften man wie bestückt, wird beim Druck auf "F1" oder beim Klick mit der "Fragezeichen-Maus" auf das ausgewählte Element die gewünschte Hilfe angezeigt.
Die einfachste Möglichkeit ist die Kontexthilfe, die allerdings, wie gehabt, nur bei aktiviertem Helpbutton des Formulars funktioniert.
Hierzu gibt man einfach unter den Element-Eigenschaften einen Text unter "HelpString on HelpProvider1" ein. Dieser Text wird dann angezeigt, wenn man mit der Fragezeichen-Maus auf das Element klickt. Hierzu muss das
Element allerdings "Enabled" sein. Bei inaktven Elementen wird die Kontexthilfe, die man dem übergeordneten Formular selbst zugeordnet hat angezeigt, während bei einem Klick auf das Formular selbst keine Hilfe angezeigt wird.
Gibt man für das Formular also diesen Text ein: "Das Element muß aktiviert sein, damit eine Hilfe angezeigt wird!" , hat man gleich eine Nothilfe für alle deaktivierten Elemente im Form
Die anderen Möglichkeiten fasse ich in untenstehender Tabelle zusammen - die Hilfe wird angezeigt, wenn die Taste "F1" gedrückt wird und das Element den Focus hat:
(Wenn die Eigenschaften so, wie unten aufgeführt bestückt werden, ohne einen Kontext unter "HelpString on HelpProvider1" einzufügen, wird diese Hilfe auch bei Verwendung des Hilfebuttons "?" des Formulars angezeigt!)
HelpNavigator on HelpProvider1 |
HelpKeyword on HelpProvider1 |
Auswirkung/Hilfsanzeige |
AssociateIndex |
Mindestens ein Buchstabe |
Es wird die Hilfe unter dem Reiter "Index" angezeigt, wobei das erste vorkommende Stichwort ausgewählt wird, welches den gleichen Anfangsbuchstaben hat, wie das unter "HelpKeyword on HelpProvider1" |
Index |
Eines der Stichwörter Ihrer Index-Liste |
Es wird die Hilfe unter dem Reiter "Index" angezeigt, wobei das Stichwort ausgewählt wird, welches Sie unter "HelpKeyword on HelpProvider1" angegeben haben. |
Topic |
Eine Webseite z.B. "Hilfe/Thema.htm", die auf einem
Server liegt. Die Serveradresse muß als Pfad unter dem HelpNameSpace des
HelpProvider1 vorliegen. |
Es wird die Webseite "Thema.htm" angezeigt. |
TopicId |
Eine Topic ID aus der Hilfedatei, aslo eine
Zahl. |
Der Hilfereiter "Inhalt" wird an dem Thema aufgeschlagen angezeigt, welches die unter "HelpKeyword on HelpProvider1" eingegebene Topic ID hat. |
KeywordIndex |
Ein Stichwort aus der Index-Liste |
Zeigt den Reiter Inhaltsangabe (!!) aufgeschlagen unter dem unter "HelpKeyword on HelpProvider1" eingegebenen Stichwort. |
Table of Contents |
Keine Auswirkung |
Die Inhaltsangabe wird an der Startseite aufgeschlagen. |
Find |
Irgendein Text ist notwendig! |
Die Hilfe wird unter dem Reiter "Suchen" angezeigt. |
Eine Hilfe auf Knopfdruck (also ohne "F1" oder Hilfebutton) lässt sich anzeigen, wenn man die auf VB.Net eingerichteten API-Funktionen verwendet:
Deklaration:
Public Declare Function HTMLHelp_BaseCall Lib "hhctrl.ocx" _ Alias "HtmlHelpA"( _ ByVal hWnd As IntPtr, _ ByVal lpHelpFile As String, _ ByVal uCommand As Int32, _ ByVal dwData As Int32) As Int32
Dies, die Aurufe, Konstanten und alles Weitere findet Ihr unter der oben angegebenen Internetadresse.
Viel Spaß!