winforms
Help-integratie
Zoeken…
Opmerkingen
U kunt op verschillende manieren hulp bieden voor Formulieren en besturingselementen in Windows Formulieren-toepassingen. U kunt een pop-uphulp weergeven, een CHM-bestand of een URL openen. U kunt contextgevoelige hulp weergeven voor formulieren, besturingselementen en dialoogvensters.
HelpProvider-component
U kunt een HelpProvider
component instellen om contextgevoelige hulp voor component te bieden. Op deze manier kunt u, wanneer de gebruiker op de F1- toets of de Help-knop van het formulier drukt, automatisch:
- Toon een contextgevoelig help-pop-upvenster voor besturingselementen
- Open een CHM-bestand op basis van context (inhoudsopgave weergeven, een trefwoord of index weergeven, een onderwerp weergeven)
- Navigeer naar een URL met de standaardbrowser
Help-klasse
U kunt de Help
klasse in code gebruiken om dit soort hulp te bieden:
- Toon een help-pop-up voor een besturingselement
- Open een CHM-bestand op basis van context (inhoudsopgave weergeven, een trefwoord of index weergeven, een onderwerp weergeven)
- Navigeer naar een URL met de standaardbrowser
HelpRequested Event
U kunt de gebeurtenis HelpRequested
van Control
of Form
verwerken om aangepaste acties uit te voeren wanneer de gebruiker op F1 drukt of op de knop Help van het formulier klikt.
Help-knop van formulier
U kunt het Form
zo instellen dat de Help-knop op de titelbalk wordt weergegeven. Op deze manier verandert de cursor in een ?
Als de gebruiker op de knop Help klikt ?
cursor en na een klik op een willekeurig punt, zal alle contextgevoelige help geassocieerd met het besturingselement met behulp van HelpProvider
worden getoond.
Help-knop van MessgeBox en CommonDialogs
U kunt hulp bieden voor MessageBox
, OpenFileDialog
, SaveDialog
en ColorDialog
met behulp van de Help-knop van de componenten.
ToolTip-component
U kunt de ToolTip
component gebruiken om wat helptekst weer te geven wanneer de gebruiker naar bedieningselementen wijst. Een ToolTip
kan aan elk besturingselement worden gekoppeld.
Notitie
HelpProvider
en Help
klasse gebruiken U kunt gecompileerde Help-bestanden (.chm) of HTML-bestanden weergeven in de HTML Help-indeling. Gecompileerde Help-bestanden bieden een inhoudsopgave, een index, zoekmogelijkheden en trefwoordkoppelingen op pagina's. Snelkoppelingen werken alleen in gecompileerde Help-bestanden. U kunt HTML Help 1.x-bestanden genereren met behulp van HTML Help Workshop. Zie "HTML Help Workshop" en andere HTML Help-onderwerpen op Microsoft HTML Help voor meer informatie over HTML Help .
Help-bestand weergeven
De Help Class
omvat de HTML Help 1.0-engine. U kunt het Help-object gebruiken om gecompileerde Help-bestanden (.chm) of HTML-bestanden in de HTML Help-indeling weer te geven. Gecompileerde Help-bestanden bieden inhoudsopgave-, index-, zoek- en trefwoordkoppelingen op pagina's. Snelkoppelingen werken alleen in gecompileerde Help-bestanden. U kunt HTML Help 1.x-bestanden genereren met een gratis hulpprogramma van Microsft genaamd HTML Help Workshop
.
Een eenvoudige manier om een gecompileerd helpbestand in een tweede venster weer te geven:
C #
Help.ShowHelp(this, helpProviderMain.HelpNamespace);
VB.NET
Help.ShowHelp(Me, hlpProviderMain.HelpNamespace)
Help weergeven voor MessageBox
U kunt op verschillende manieren hulp bieden voor de berichtenbox. U kunt een MessageBox
configureren om een Help
knop weer te geven of niet. U kunt MessageBox
ook zo configureren dat wanneer de gebruiker om hulp vraagt door op Help te klikken of door op F1 te drukken, het een CHM-bestand toont of naar een URL navigeert of een aangepaste actie uitvoert. Hier zijn enkele voorbeelden in dit onderwerp.
In alle onderstaande voorbeelden ziet de MessageBox
er als volgt uit:
Een CHM-bestand weergeven en naar een trefwoord navigeren (index)
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm", HelpNavigator.KeywordIndex, "SomeKeyword");
Toon een CHM-bestand en navigeer naar een onderwerp
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm", HelpNavigator.Topic, "/SomePath/SomePage.html");
Toon een CHM-bestand en navigeer door de eerste hulppagina in de inhoudsopgave
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm");
Open de standaardbrowser en navigeer naar een URL
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"http://example.com");
Voer aangepaste actie uit wanneer u op de Help-knop of F1-toets drukt
In dit geval moet HelpRequested
gebeurtenis HelpRequested
van bovenliggend HelpRequested
van MessageBox
afhandelen en een aangepaste bewerking uitvoeren:
private void Form1_HelpRequested(object sender, HelpEventArgs hlpevent)
{
// Perform custom action, for example show a custom help form
var f = new Form();
f.ShowDialog();
}
Vervolgens kunt u de MessageBox
met de knop Help:
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0, true);
Of toon het zonder Help-knop:
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0, false);
Help weergeven voor CommonDialogs
U kunt hulp bieden voor OpenFileDialog
, SaveFileDialog
en ColorDialog
. Stel ShowHelp
eigenschap ShowHelp
van dialoogvenster in op true
en behandel de HelpRequest
gebeurtenis voor dialoog:
void openFileDialog1_HelpRequest(object sender, EventArgs e)
{
//Perform custom action
Help.ShowHelp(this, "Http://example.com");
}
Notitie
- Het evenement wordt alleen verhoogd als u
ShowHelp
optrue
. - Het evenement zal alleen worden verhoogd door op de
Help
knop te klikken en zal niet worden verhoogd met de F1-toets.
In de onderstaande afbeelding ziet u een OpenFileDialog
met een Help-knop:
Help verwerkenGevraagde gebeurtenis van besturingselementen en formulier
Wanneer een gebruiker op F1 drukt op een besturingselement of op Help-knop van formulier ( ? ) Klikt en vervolgens op een besturingselement klikt, wordt de HelpRequested
gebeurtenis HelpRequested
.
U kunt deze gebeurtenis verwerken om aangepaste actie te bieden wanneer de gebruiker om hulp voor besturingselementen of formulier vraagt.
De HelpRequested
ondersteunt het HelpRequested
. Het vuurt voor uw actieve controle en als u de gebeurtenis niet afhandelt en de eigenschap Handled
van zijn gebeurtenis arg niet op true
instelt, dan borrelt het naar de bovenliggende besturingshiërarchie om te vormen.
Als u bijvoorbeeld een HelpRequested
gebeurtenis van het onderstaande formulier afhandelt, HelpRequested
een berichtvenster met de naam van het actieve besturingselement wanneer u op F1 drukt, maar voor textBox1
wordt een ander bericht weergegeven:
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");
}
U kunt andere aangepaste acties uitvoeren, zoals navigeren naar een URL of een CHM-bestand weergeven met behulp van de Help
klasse.
Help weergeven met behulp van Help-klasse
U kunt de Help
klasse in code gebruiken om dit soort hulp te bieden:
- Toon een help-pop-up voor een besturingselement
- Open een CHM-bestand op basis van context (inhoudsopgave weergeven, een trefwoord of index weergeven, een onderwerp weergeven)
- Navigeer naar een URL met de standaardbrowser
Pop-upvenster Help weergeven
U kunt Help.ShowPopup
gebruiken om een pop-upvenster voor hulp Help.ShowPopup
te geven:
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));
}
Het zal een dergelijke hulppop-up laten zien op de locatie van uw muisaanwijzer:
Help-bestand van CHM weergeven
U kunt verschillende overloads van de Help.ShowHelp
methode gebruiken om een CHM-bestand weer te geven en naar een trefwoord, een onderwerp, een index of een inhoudsopgave te navigeren:
Help-inhoudsopgave weergeven
Help.ShowHelp(this, "Help.chm");
Help weergeven voor specifiek trefwoord (index)
Help.ShowHelp(this, "Help.chm", HelpNavigator.Index, "SomeKeyword");
Help weergeven voor een specifiek onderwerp
Help.ShowHelp(this, "Help.chm", HelpNavigator.Topic, "/SomePath/SomePage.html");
URL weergeven
U kunt elke URL in de standaardbrowser weergeven met behulp van de ShowHelp
methode:
Help.ShowHelp(this, "Http://example.com");
Help-knop weergeven op titelbalk van formulier
U kunt een Help-knop weergeven op de titelbalk van een Form
. Om dit te doen, moet u:
- Stel de eigenschap
HelpButton
van formulier in optrue
. - Stel
MinimizeBox
enMaximizeBox
opfalse
.
Vervolgens verschijnt een Help-knop op de titelbalk van Form
:
Ook als u op Help klikt, wordt de cursor gewijzigd in een ?
cursor:
Als u vervolgens op een Control
of Form
klikt, wordt de gebeurtenis HelpRequested
en ook als u een HelpProvider
hebt ingesteld, wordt de hulp voor het besturingselement weergegeven met behulp van HelpProvider
.
Maak een aangepaste Help-knop die fungeert als standaard Form HelpButton
Als u een Form
met MinimizeBox
en MaximizeBox
ingesteld op true
, kunt u de Help-knop niet op de titelbalk van Form
en verliest u de functie van klikken op Help-knop om te converteren naar cursor om te kunnen klikken op besturingselementen om hulp laten zien.
U kunt een menu-item op MenuStrip
als een standaard Help-knop laten werken. Om dit te doen, voegt u een MenuStrip
aan het formulier en voegt u er een ToolStripMenuItem
aan toe, en behandelt Click
vervolgens Click
gebeurtenis van het item:
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);
}
Opmerking: als u dit met een Button
wilt doen, moet u ook button1.Capture = false;
instellen button1.Capture = false;
voordat u het bericht verzendt. Maar het is niet nodig voor een ToolStripMenuItem
.
Wanneer u vervolgens op het helpmenu klikt, wordt de cursor gewijzigd in ?
cursor en werkt als wanneer u op de standaard Help-knop klikt:
Omgaan met HelpButton Geklikte gebeurtenis van formulier
U kunt detecteren wanneer een gebruiker op een HelpButton
op de titelbalk van het formulier heeft HelpButtonClicked
door HelpButtonClicked
. Je kunt de gebeurtenis laten doorgaan of annuleren door eigenschap Cancel
van de gebeurtenis args in te stellen op true
.
private void Form1_HelpButtonClicked(object sender, CancelEventArgs e)
{
e.Cancel = true;
//Perform some custom action
MessageBox.Show("Some Custom Help");
}