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:

MessageBox mit Hilfe-Button

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 Sie ShowHelp auf true .
  • 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:

Öffnen Sie den Dateidialog mit Hilfe der 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:

Geben Sie hier die Bildbeschreibung ein

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:

  1. Setzen Sie die HelpButton Eigenschaft des Formulars auf true .
  2. Setzen Sie MinimizeBox und MaximizeBox auf false .

Dann erscheint eine Hilfeschaltfläche in der Titelleiste von Form :

Geben Sie hier die Bildbeschreibung ein

Wenn Sie auf die Schaltfläche Hilfe klicken, wird der Cursor in ein ? Mauszeiger:

Geben Sie hier die Bildbeschreibung ein

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:

Benutzerdefinierte 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");
}


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow