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:

MessageBox med hjälpknapp

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 till true .
  • 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 :

Öppna fildialogen med hjälpknappen

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:

ange bildbeskrivning här

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:

  1. Ställ in HelpButton egenskap till true .
  2. Ställ MinimizeBox och MaximizeBox till false .

Sedan kommer en hjälpknapp att visas på rubriken i Form :

ange bildbeskrivning här

När du klickar på Hjälp-knappen ändras markören till a ? markör:

ange bildbeskrivning hä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:

Anpassad hjälpknapp

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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow