winforms
Hilfe bei der Integration
Suche…
Bemerkungen
Sie können auf verschiedene Arten Hilfe für Formulare und Steuerelemente in Windows Forms-Anwendungen bereitstellen. Sie können eine Popup-Hilfe anzeigen, eine CHM-Datei oder eine URL öffnen. Sie können eine kontextsensitive Hilfe für Formulare, Steuerelemente und Dialoge anzeigen.
HelpProvider-Komponente
Sie können eine HelpProvider
Komponente HelpProvider
, um kontextsensitive Hilfe für die Komponente bereitzustellen. Auf diese Weise können Sie, wenn der Benutzer die Taste F1 oder die Hilfetaste des Formulars drückt, automatisch Folgendes tun:
- Zeigt ein kontextsensitives Hilfe-Popup für Steuerelemente an
- CHM-Datei basierend auf Kontext öffnen (Inhaltsverzeichnis anzeigen, Stichwort oder Index anzeigen, Thema anzeigen)
- Navigieren Sie mit einem Standardbrowser zu einer URL
Hilfe Klasse
Sie können die Help
Klasse im Code verwenden, um diese Art von Hilfe bereitzustellen:
- Ein Hilfe-Popup für ein Steuerelement anzeigen
- CHM-Datei basierend auf Kontext öffnen (Inhaltsverzeichnis anzeigen, Stichwort oder Index anzeigen, Thema anzeigen)
- Navigieren Sie mit einem Standardbrowser zu einer URL
HelpRequested-Ereignis
Sie können das HelpRequested
Ereignis von Control
oder Form
, um benutzerdefinierte Aktionen auszuführen, wenn der Benutzer F1 drückt oder auf die Schaltfläche Hilfe des Formulars klickt.
Hilfeschaltfläche des Formulars
Sie können das Form
, dass die Hilfe-Schaltfläche in der Titelleiste angezeigt wird. Wenn der Benutzer auf die Schaltfläche "Hilfe" klickt, ändert sich der Cursor zu einem ?
Cursor und nach einem Klick auf einen beliebigen Punkt wird jede kontextabhängige Hilfe HelpProvider
, die dem Steuerelement mithilfe von HelpProvider
ist.
Hilfeschaltfläche von MessgeBox und CommonDialogs
Sie können Hilfe für MessageBox
, OpenFileDialog
, SaveDialog
und ColorDialog
über die Schaltfläche Hilfe der Komponenten ColorDialog
.
QuickInfo-Komponente
Sie können die ToolTip
Komponente verwenden, um ToolTip
anzuzeigen, wenn der Benutzer auf Steuerelemente zeigt. Eine ToolTip
kann mit jedem Steuerelement ToolTip
werden.
Hinweis
HelpProvider
und Help
Klasse verwenden Sie können kompilierte Hilfedateien (.chm) oder HTML-Dateien im HTML-Hilfeformat anzeigen. Kompilierte Hilfedateien enthalten ein Inhaltsverzeichnis, einen Index, Suchfunktionen und Stichwortverknüpfungen auf Seiten. Verknüpfungen funktionieren nur in kompilierten Hilfedateien. Sie können HTML Help 1.x-Dateien mithilfe von HTML Help Workshop generieren. Weitere Informationen zur HTML-Hilfe finden Sie unter "HTML Help Workshop" und anderen HTML-Hilfethemen in der Microsoft HTML-Hilfe .
Hilfedatei anzeigen
Die Help Class
kapselt die HTML Help 1.0-Engine. Sie können das Hilfeobjekt verwenden, um kompilierte Hilfedateien (.chm) oder HTML-Dateien im HTML-Hilfeformat anzuzeigen. Kompilierte Hilfedateien enthalten Inhaltsverzeichnisse, Index-, Such- und Stichwortlinks auf Seiten. Verknüpfungen funktionieren nur in kompilierten Hilfedateien. Sie können HTML Help 1.x-Dateien mit einem kostenlosen Tool von Microsft namens HTML Help Workshop
generieren.
Eine einfache Möglichkeit, eine kompilierte Hilfedatei in einem zweiten Fenster anzuzeigen:
C #
Help.ShowHelp(this, helpProviderMain.HelpNamespace);
VB.NET
Help.ShowHelp(Me, hlpProviderMain.HelpNamespace)
Hilfe für MessageBox anzeigen
Sie können auf verschiedene Arten Hilfe für das Meldungsfeld bereitstellen. Sie können eine MessageBox
so konfigurieren, dass eine Help
Schaltfläche MessageBox
oder nicht. Sie können MessageBox
auch so konfigurieren, dass der Benutzer, wenn er Hilfe anfordert, durch Klicken auf die Schaltfläche Hilfe oder durch Drücken von F1 eine CHM-Datei anzeigt oder zu einer URL navigiert oder eine benutzerdefinierte Aktion ausführt. Hier sind einige Beispiele in diesem Thema.
In allen folgenden Beispielen würde die MessageBox
folgendermaßen aussehen:
Zeigen Sie eine CHM-Datei an und navigieren Sie zu einem Stichwort (Index).
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm", HelpNavigator.KeywordIndex, "SomeKeyword");
Zeigen Sie eine CHM-Datei an und navigieren Sie zu einem Thema
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm", HelpNavigator.Topic, "/SomePath/SomePage.html");
Zeigen Sie eine CHM-Datei an und navigieren Sie zur ersten Hilfeseite im Inhaltsverzeichnis
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm");
Öffnen Sie den Standardbrowser und navigieren Sie zu einer URL
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"http://example.com");
Führen Sie eine benutzerdefinierte Aktion aus, wenn Sie die Hilfetaste oder die Taste F1 drücken
In diesem Fall sollten Sie das HelpRequested
Ereignis des übergeordneten HelpRequested
von MessageBox
und eine benutzerdefinierte Operation ausführen:
private void Form1_HelpRequested(object sender, HelpEventArgs hlpevent)
{
// Perform custom action, for example show a custom help form
var f = new Form();
f.ShowDialog();
}
Dann können Sie die MessageBox
mit Hilfe der Schaltfläche MessageBox
:
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0, true);
Oder zeigen Sie es ohne Hilfe-Button:
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0, false);
Hilfe für CommonDialogs anzeigen
Sie können Hilfe für OpenFileDialog
, SaveFileDialog
und ColorDialog
. Setzen Sie dazu die ShowHelp
Eigenschaft des Dialogfelds auf true
und behandeln Sie das HelpRequest
Ereignis für das Dialogfeld:
void openFileDialog1_HelpRequest(object sender, EventArgs e)
{
//Perform custom action
Help.ShowHelp(this, "Http://example.com");
}
Hinweis
- Das Ereignis wird nur
ShowHelp
, wenn SieShowHelp
auftrue
. - Das Ereignis wird nur durch Klicken auf die Schaltfläche
Help
ausgelöst und nicht mit der Taste F1 erhöht.
Im Bild unten sehen Sie einen OpenFileDialog
mit einer Hilfe-Schaltfläche:
Behandeln des HelpRequested-Ereignisses von Steuerelementen und Formular
Wenn ein Benutzer F1 an einem Steuerelement drückt oder auf die Schaltfläche Hilfe des Formulars ( ? ) HelpRequested
und dann auf ein Steuerelement HelpRequested
, wird das HelpRequested
Ereignis HelpRequested
.
Sie können dieses Ereignis behandeln, um eine benutzerdefinierte Aktion bereitzustellen, wenn der Benutzer Hilfe zu Steuerelementen oder Formular anfordert.
Der HelpRequested
unterstützt den Bubble-Up-Mechanismus. Es wird für Ihr aktives Steuerelement Handled
Wenn Sie das Ereignis nicht behandeln und die Eigenschaft Handled
des Ereignisses arg nicht auf true
, wird die übergeordnete Steuerelementhierarchie bis zum Formular Handled
.
Wenn Sie beispielsweise das HelpRequested
Ereignis des Formulars wie HelpRequested
behandeln, wird beim Drücken von F1 ein Meldungsfeld mit dem Namen des aktiven Steuerelements textBox1
Bei textBox1
wird jedoch eine andere Meldung textBox1
:
private void Form1_HelpRequested(object sender, HelpEventArgs hlpevent)
{
var c = this.ActiveControl;
if(c!=null)
MessageBox.Show(c.Name);
}
private void textBox1_HelpRequested(object sender, HelpEventArgs hlpevent)
{
hlpevent.Handled = true;
MessageBox.Show("Help request handled and will not bubble up");
}
Sie können jede andere benutzerdefinierte Aktion ausführen, z. B. das Navigieren zu einer URL oder das Anzeigen einer CHM-Datei mithilfe der Help
.
Hilfe mit Hilfe der Klasse anzeigen
Sie können die Help
Klasse im Code verwenden, um diese Art von Hilfe bereitzustellen:
- Ein Hilfe-Popup für ein Steuerelement anzeigen
- CHM-Datei basierend auf Kontext öffnen (Inhaltsverzeichnis anzeigen, Stichwort oder Index anzeigen, Thema anzeigen)
- Navigieren Sie mit einem Standardbrowser zu einer URL
Hilfe-Popup-Fenster anzeigen
Sie können Help.ShowPopup
, um ein Hilfe-Popup-Fenster anzuzeigen:
private void control_MouseClick(object sender, MouseEventArgs e)
{
var c = (Control)sender;
var help = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, " +
"sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
if (c != null)
Help.ShowPopup(c, "Lorem ipsum dolor sit amet.", c.PointToScreen(e.Location));
}
Es wird ein solches Hilfefenster an Ihrer Mauszeigerposition angezeigt:
CHM-Hilfedatei anzeigen
Sie können verschiedene Überladungen der Help.ShowHelp
Methode verwenden, um eine CHM-Datei Help.ShowHelp
und zu einem Stichwort, einem Thema, einem Index oder einem Inhaltsverzeichnis zu navigieren:
Hilfeinhaltsverzeichnis anzeigen
Help.ShowHelp(this, "Help.chm");
Hilfe für ein bestimmtes Keyword anzeigen (Index)
Help.ShowHelp(this, "Help.chm", HelpNavigator.Index, "SomeKeyword");
Hilfe zu einem bestimmten Thema anzeigen
Help.ShowHelp(this, "Help.chm", HelpNavigator.Topic, "/SomePath/SomePage.html");
URL anzeigen
Sie können jede URL im Standardbrowser mithilfe der ShowHelp
Methode ShowHelp
:
Help.ShowHelp(this, "Http://example.com");
Hilfeschaltfläche in der Titelleiste des Formulars anzeigen
Sie können eine Hilfeschaltfläche in der Titelleiste eines Form
. Um dies zu tun, sollten Sie:
- Setzen Sie die
HelpButton
Eigenschaft des Formulars auftrue
. - Setzen Sie
MinimizeBox
undMaximizeBox
auffalse
.
Dann erscheint eine Hilfeschaltfläche in der Titelleiste von Form
:
Wenn Sie auf die Schaltfläche Hilfe klicken, wird der Cursor in ein ?
Mauszeiger:
Dann , wenn Sie auf einer klicken Control
oder Form
, das HelpRequested
wird Ereignis ausgelöst werden , und auch , wenn Sie Setup eine HelpProvider
, die Hilfe für die Steuerung wird mit angezeigt HelpProvider
.
Erstellen Sie eine benutzerdefinierte Hilfeschaltfläche, die sich wie eine Standard-Formularhilfeschaltfläche verhält
Wenn Sie ein Form
mit MinimizeBox
und MaximizeBox
auf true
, können Sie die Hilfe-Schaltfläche nicht in der Titelleiste des Form
anzeigen. Dadurch wird die Funktion des Klickens auf die Hilfe-Schaltfläche verloren, um den Cursor zu konvertieren, damit der Cursor auf die Steuerelemente klicken kann Zeig Hilfe.
Sie können einen Menüeintrag in MenuStrip
wie eine Standard- MenuStrip
. MenuStrip
dazu dem Formular ein ToolStripMenuItem
hinzu, fügen Sie ein MenuStrip
und ToolStripMenuItem
Sie dann das Click
Ereignis des Elements:
private const int WM_SYSCOMMAND = 0x0112;
private const int SC_CONTEXTHELP = 0xF180;
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern IntPtr SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
private void helpToolStripMenuItem_Click(object sender, EventArgs e)
{
SendMessage(this.Handle, WM_SYSCOMMAND, SC_CONTEXTHELP, 0);
}
Hinweis: Wenn Sie einen Button
möchten, müssen Sie auch button1.Capture = false;
vor dem Senden der Nachricht. Für ein ToolStripMenuItem
ist dies jedoch nicht erforderlich.
Wenn Sie dann auf das Hilfemenü klicken, ändert sich der Cursor in ?
Cursor und verhält sich wie beim Klicken auf die Standard-Hilfe-Schaltfläche:
Behandeln des HelpButtonClicked-Ereignisses von Form
Sie können erkennen, wann ein Benutzer auf einen HelpButton
in der Titelleiste des Formulars HelpButtonClicked
indem Sie HelpButtonClicked
. Sie können das Ereignis fortsetzen oder abbrechen, indem Sie die Cancel
Eigenschaft der Ereignisargumente auf true
.
private void Form1_HelpButtonClicked(object sender, CancelEventArgs e)
{
e.Cancel = true;
//Perform some custom action
MessageBox.Show("Some Custom Help");
}