winforms
Hjälp integration
Sök…
Anmärkningar
Du kan ge hjälp för formulär och kontroller i ett Windows-formulärprogram på olika sätt. Du kan visa en popup-hjälp, öppna en CHM-fil eller en URL. Du kan visa kontextkänslig hjälp för formulär, kontroller och dialogrutor.
HelpProvider-komponent
Du kan ställa in en HelpProvider
komponent för att ge kontextkänslig hjälp för komponenten. På detta sätt när användaren trycker på F1- tangenten eller Hjälp-knappen i formuläret, kan du automatiskt:
- Visa en kontextkänslig hjälpfönster för kontroller
- Öppna en CHM-fil baserad på kontext (Visa innehållsförteckning, Visa ett nyckelord eller ett index, visa ett ämne)
- Navigera till en URL med standardwebbläsaren
Hjälp klass
Du kan använda Help
i kod för att ge dessa typer av hjälp:
- Visa en hjälppop-up för en kontroll
- Öppna en CHM-fil baserad på kontext (Visa innehållsförteckning, Visa ett nyckelord eller ett index, visa ett ämne)
- Navigera till en URL med standardwebbläsaren
HelpRequested Event
Du kan hantera HelpRequested
händelse av Control
eller Form
att utföra anpassade åtgärder när användaren trycker på F1 eller klickar på Hjälp-knappen i formuläret.
Hjälp-knapp för form
Du kan ställa in Form
att visa hjälpknappen på titelraden. På det här sättet, om användaren klickar på Hjälp-knappen, kommer markören att ändras till en ?
markören och efter att ha klickat på vilken punkt som helst, visas alla sammanhangskänsliga hjälp förknippade med kontrollen med hjälp av HelpProvider
.
Hjälpknapp för MessgeBox och CommonDialogs
Du kan ge hjälp för MessageBox
, OpenFileDialog
, SaveDialog
och ColorDialog
med hjälp av knappen för komponenterna.
ToolTip-komponent
Du kan använda ToolTip
komponenten för att visa lite hjälptext när användaren pekar på kontrollerna. Ett ToolTip
kan associeras med valfri kontroll.
Notera
Använda HelpProvider
och Help
klassen Du kan visa sammanställda hjälpfiler (.chm) eller HTML-filer i HTML-hjälpformatet. Samlade hjälpfiler ger en innehållsförteckning, ett index, sökfunktion och sökordslänkar på sidor. Genvägar fungerar endast i sammanställda hjälpfiler. Du kan generera HTML Help 1.x-filer med hjälp av HTML Help Workshop. Mer information om HTML-hjälp finns i "HTML-hjälpverkstad" och andra HTML-hjälpämnen i Microsoft HTML-hjälp .
Visa hjälpfil
Help Class
innehåller HTML Help 1.0-motorn. Du kan använda hjälpobjektet för att visa sammanställda hjälpfiler (.chm) eller HTML-filer i HTML-hjälpformatet. Samlade hjälpfiler ger innehållsförteckning, index, sök och sökord på sidor. Genvägar fungerar endast i sammanställda hjälpfiler. Du kan generera HTML Help 1.x-filer med ett gratis verktyg från Microsft som heter HTML Help Workshop
.
Ett enkelt sätt att visa en sammanställd hjälpfil i ett andra fönster:
C #
Help.ShowHelp(this, helpProviderMain.HelpNamespace);
VB.NET
Help.ShowHelp(Me, hlpProviderMain.HelpNamespace)
Visa hjälp för MessageBox
Du kan ge hjälp för meddelandelådan på olika sätt. Du kan konfigurera en MessageBox
för att visa en Help
eller inte. Du kan också konfigurera MessageBox
på ett sätt som när användaren begär hjälp genom att klicka på hjälpknappen eller genom att trycka på F1 , den visar en CHM-fil eller navigerar till en URL eller utför en anpassad åtgärd. Här är några exempel i det här ämnet.
I alla nedanstående exempel skulle MessageBox
vara så här:
Visa en CHM-fil och navigera till ett nyckelord (index)
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm", HelpNavigator.KeywordIndex, "SomeKeyword");
Visa en CHM-fil och navigera till ett ämne
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm", HelpNavigator.Topic, "/SomePath/SomePage.html");
Visa en CHM-fil och navigera på första hjälpsidan i innehållsförteckningen
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm");
Öppna standardwebbläsaren och navigera till en URL
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"http://example.com");
Utför anpassade åtgärder när du trycker på hjälpknappen eller F1-tangenten
I det här fallet ska du hantera HelpRequested
händelse som förälder till MessageBox
och utföra anpassad operation:
private void Form1_HelpRequested(object sender, HelpEventArgs hlpevent)
{
// Perform custom action, for example show a custom help form
var f = new Form();
f.ShowDialog();
}
Sedan kan du visa MessageBox
med hjälp-knappen:
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0, true);
Eller visa den utan hjälpknappen:
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0, false);
Visa hjälp för CommonDialogs
Du kan ge hjälp för OpenFileDialog
, SaveFileDialog
och ColorDialog
. För att göra det ställer du in ShowHelp
egenskapen för dialog till true
och hanterar HelpRequest
händelse för dialog:
void openFileDialog1_HelpRequest(object sender, EventArgs e)
{
//Perform custom action
Help.ShowHelp(this, "Http://example.com");
}
Notera
- Händelsen höjs endast om du ställer
ShowHelp
tilltrue
. - Händelsen höjs endast genom att klicka på
Help
knappen och kommer inte att höjas med F1-tangenten.
På bilden nedan kan du se en OpenFileDialog
med OpenFileDialog
:
Hantera Hjälp Beräknad händelse av kontroller och form
När en användare trycker på F1 på en kontroll eller klickar på hjälpknappen i formuläret ( ? ) Och sedan klickar på en kontroll HelpRequested
händelsen.
Du kan hantera den här händelsen för att tillhandahålla anpassad åtgärd när användaren begär hjälp för kontroller eller formulär.
HelpRequested
stöder bubble up-mekanismen. Den avfyrar för din aktiva kontroll och om du inte hanterar händelsen och inte ställer in den Handled
egenskapen för dess händelse arg till true
, så bubblar den upp till överordnade kontrollhierarkin för att bildas.
Om du till exempel hanterar HelpRequested
händelse av formen som nedan, då när du trycker på F1 kommer en meddelanderuta att dyka upp och visa namnet på den aktiva kontrollen, men för textBox1
kommer det att visa ett annat meddelande:
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");
}
Du kan utföra någon annan anpassad åtgärd som att navigera till en URL eller visa en CHM-fil med Help
klassen Help
.
Visa hjälp med hjälpklassen
Du kan använda Help
i kod för att ge dessa typer av hjälp:
- Visa en hjälppop-up för en kontroll
- Öppna en CHM-fil baserad på kontext (Visa innehållsförteckning, Visa ett nyckelord eller ett index, visa ett ämne)
- Navigera till en URL med standardwebbläsaren
Visa popup-fönstret Hjälp
Du kan använda Help.ShowPopup
att visa ett popup-fönster för hjälp:
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));
}
Det kommer att visa sådan hjälp-pop-up på din muspekars plats:
Visa CHM-hjälpfil
Du kan använda olika överbelastningar av Help.ShowHelp
metoden för att visa en CHM-fil och navigera till ett nyckelord, ett ämne, ett index eller en innehållsförteckning:
Visa hjälp innehållsförteckning
Help.ShowHelp(this, "Help.chm");
Visa hjälp för specifikt sökord (index)
Help.ShowHelp(this, "Help.chm", HelpNavigator.Index, "SomeKeyword");
Visa hjälp för specifikt ämne
Help.ShowHelp(this, "Help.chm", HelpNavigator.Topic, "/SomePath/SomePage.html");
Visa Url
Du kan visa valfri URL i standardwebbläsaren med hjälp av ShowHelp
metoden:
Help.ShowHelp(this, "Http://example.com");
Visa hjälpknapp på rubrikfältet i formuläret
Du kan visa en hjälpknapp på rubriken i ett Form
. För att göra det bör du:
- Ställ in
HelpButton
egenskap tilltrue
. - Ställ
MinimizeBox
ochMaximizeBox
tillfalse
.
Sedan kommer en hjälpknapp att visas på rubriken i Form
:
När du klickar på Hjälp-knappen ändras markören till a ?
markör:
Om du sedan klickar på en Control
eller ett Form
kommer HelpRequested
händelsen att höjas och om du har konfigurerat en HelpProvider
, kommer hjälpen för kontrollen att visas med hjälp av HelpProvider
.
Skapa anpassad hjälpknapp som fungerar som standardformulär HelpButton
Om du har ett Form
med MinimizeBox
och MaximizeBox
inställt på true
, kan du inte visa hjälpknappen på rubrikfältet i Form
och kommer att förlora funktionen att klicka på hjälpknappen för att konvertera den till hjälpmarkören för att kunna klicka på kontrollerna för att visa hjälp.
Du kan låta ett menyalternativ på MenuStrip
fungera som en standardhjälpknapp. För att göra det, lägg till en MenuStrip
i formuläret och lägg till en ToolStripMenuItem
till det och hantera sedan Click
händelse för objektet:
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);
}
Obs: Om du vill göra det med en Button
måste du också ställa in button1.Capture = false;
innan du skickar meddelandet. Men det är inte nödvändigt för ett ToolStripMenuItem
.
När du sedan klickar på hjälpmenyn kommer markören att ändras till ?
markören och fungerar som när du klickar på standardhjälp-knappen:
HanteringshjälpKnappKlicka händelse av formulär
Du kan upptäcka när en användare klickade på en HelpButton
på titelraden i formuläret genom att hantera HelpButtonClicked
. Du kan låta händelsen fortsätta eller avbryta den genom att ställa in Cancel
egenskapen för dess händelse args till true
.
private void Form1_HelpButtonClicked(object sender, CancelEventArgs e)
{
e.Cancel = true;
//Perform some custom action
MessageBox.Show("Some Custom Help");
}