Ricerca…


Osservazioni

È possibile fornire assistenza per moduli e controlli in un'applicazione Windows Form in modi diversi. Puoi mostrare una guida pop-up, aprire un file CHM o un URL. È possibile visualizzare la guida sensibile al contesto per moduli, controlli e finestre di dialogo.

HelpProvider Component

È possibile impostare un componente HelpProvider per fornire una guida sensibile al contesto per il componente. In questo modo quando l'utente preme il tasto F1 o il pulsante Guida del modulo, è possibile:

  • Mostra una finestra di aiuto sensibile al contesto per i controlli
  • Aprire un file CHM in base al contesto (Mostra tabella dei contenuti, Mostra una parola chiave o un indice, mostra un argomento)
  • Passare a un URL utilizzando il browser predefinito

Aiuta classe

È possibile utilizzare la classe Help nel codice per fornire questo tipo di aiuto:

  • Mostra un pop-up di aiuto per un controllo
  • Aprire un file CHM in base al contesto (Mostra tabella dei contenuti, Mostra una parola chiave o un indice, mostra un argomento)
  • Passare a un URL utilizzando il browser predefinito

Aiuto Evento Richiesto

È possibile gestire HelpRequested evento HelpRequested degli oggetti Control o Form per eseguire azioni personalizzate quando l'utente preme F1 o fa clic sul pulsante Guida del modulo.

Help Button of Form

È possibile configurare il Form per mostrare il pulsante Guida sulla barra del titolo. In questo modo, se l'utente fa clic sul pulsante Guida, il cursore cambierà in a ? cursore e dopo aver fatto clic su un punto qualsiasi, verrà visualizzata qualsiasi guida sensibile al contesto associata al controllo utilizzando HelpProvider .

Pulsante Aiuto di MessgeBox e CommonDialogs

È possibile fornire aiuto per MessageBox , OpenFileDialog , SaveDialog e ColorDialog utilizzando il pulsante Guida dei componenti.

Componente descrizione

È possibile utilizzare il componente ToolTip per visualizzare del testo di guida quando l'utente punta ai controlli. Una ToolTip può essere associata a qualsiasi controllo.

Nota

Uso della classe HelpProvider e della Help È possibile visualizzare file della Guida compilati (.chm) o file HTML nel formato della Guida HTML. I file della Guida compilati forniscono un sommario, un indice, funzionalità di ricerca e collegamenti di parole chiave nelle pagine. Le scorciatoie funzionano solo nei file della Guida compilati. È possibile generare file 1.x della Guida HTML utilizzando l'HTML Help Workshop. Per ulteriori informazioni sulla Guida HTML, consultare "Workshop della Guida HTML" e altri argomenti della Guida HTML nella Guida HTML di Microsoft .

Mostra il file di aiuto

La Help Class incapsula il motore HTML della Guida 1.0. È possibile utilizzare l'oggetto Help per visualizzare i file della Guida compilati (.chm) o i file HTML nel formato della Guida HTML. I file della Guida compilati forniscono sommari, indici, ricerche e collegamenti di parole chiave nelle pagine. Le scorciatoie funzionano solo nei file della Guida compilati. È possibile generare file 1.x della Guida HTML con uno strumento gratuito di Microsft chiamato HTML Help Workshop .

Un modo semplice per mostrare un file della guida compilato in una seconda finestra:

C #

Help.ShowHelp(this, helpProviderMain.HelpNamespace);

VB.NET

Help.ShowHelp(Me, hlpProviderMain.HelpNamespace)

Mostra la Guida per MessageBox

È possibile fornire assistenza per la finestra di messaggio in diversi modi. È possibile configurare un MessageBox per mostrare o meno un pulsante Help . Inoltre puoi configurare MessageBox in modo tale che quando l'utente richiede aiuto cliccando sul pulsante Aiuto o premendo F1 , mostra un file CHM o naviga verso un URL o esegue un'azione personalizzata. Ecco alcuni esempi in questo argomento.

In tutti gli esempi qui sotto, il MessageBox sarebbe così:

MessageBox con pulsante Guida

Mostra un file CHM e vai a una parola chiave (indice)

MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
    MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
    "help.chm", HelpNavigator.KeywordIndex, "SomeKeyword");

Mostra un file CHM e vai a un argomento

MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
    MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
    "help.chm", HelpNavigator.Topic, "/SomePath/SomePage.html");

Mostra un file CHM e naviga nella prima pagina di aiuto nel sommario

MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
    MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
    "help.chm");

Apri il browser predefinito e naviga verso un URL

MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
    MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
    "http://example.com");

Esegui un'azione personalizzata quando premi il pulsante Guida o il tasto F1

In questo caso dovresti gestire HelpRequested evento HelpRequested di parent di MessageBox ed eseguire operazioni personalizzate:

private void Form1_HelpRequested(object sender, HelpEventArgs hlpevent)
{
    // Perform custom action, for example show a custom help form
    var f = new Form();  
    f.ShowDialog();
}

Quindi puoi mostrare il MessageBox con il pulsante Aiuto:

MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
    MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0, true);

O mostralo senza pulsante Guida:

MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
    MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0, false);

Mostra Guida per CommonDialogs

È possibile fornire aiuto per OpenFileDialog , SaveFileDialog e ColorDialog . Per fare ciò, imposta la proprietà ShowHelp della finestra di dialogo su true e HelpRequest evento HelpRequest per la finestra di dialogo:

void openFileDialog1_HelpRequest(object sender, EventArgs e)
{
    //Perform custom action
    Help.ShowHelp(this, "Http://example.com");
}

Nota

  • L'evento verrà generato solo se si imposta ShowHelp su true .
  • L'evento verrà generato solo facendo clic sul pulsante Help e non aumenterà utilizzando il tasto F1.

Nell'immagine sottostante puoi vedere un OpenFileDialog con un pulsante Guida:

Finestra di dialogo Apri file con pulsante Guida

Gestione della guida Evento richiesto di controlli e modulo

Quando un utente preme F1 su un controllo o fa clic sul pulsante Guida del modulo ( ? ) E quindi fa clic su un controllo, verrà HelpRequested evento HelpRequested .

È possibile gestire questo evento per fornire un'azione personalizzata quando l'utente richiede assistenza per controlli o moduli.

HelpRequested supporta il meccanismo di bolla. Si attiva per il controllo attivo e se non si gestisce l'evento e non si imposta la proprietà Handled del relativo evento arg su true , viene visualizzata la gerarchia di controllo padre fino alla sua forma.

Ad esempio, se HelpRequested evento HelpRequested del modulo come di seguito, quando premi F1 apparirà una finestra di messaggio e mostrerà il nome del controllo attivo, ma per textBox1 mostrerà un messaggio diverso:

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

È possibile eseguire qualsiasi altra azione personalizzata come utilizzare la navigazione verso un URL o mostrare un file CHM usando la classe Help .

Mostra Guida utilizzando la classe della Guida

È possibile utilizzare la classe Help nel codice per fornire questo tipo di aiuto:

  • Mostra un pop-up di aiuto per un controllo
  • Aprire un file CHM in base al contesto (Mostra tabella dei contenuti, Mostra una parola chiave o un indice, mostra un argomento)
  • Passare a un URL utilizzando il browser predefinito

Mostra la finestra a comparsa Aiuto

Puoi usare Help.ShowPopup per visualizzare una finestra pop-up di aiuto:

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

Mostrerà tale pop-up di aiuto nella posizione del puntatore del mouse:

inserisci la descrizione dell'immagine qui

Mostra il file della Guida CHM

Puoi utilizzare diversi overload del metodo Help.ShowHelp , per mostrare un file CHM e navigare verso una parola chiave, un argomento, un indice o una tabella di contenuti:

Mostra il sommario della guida

Help.ShowHelp(this, "Help.chm"); 

Mostra guida per parole chiave specifiche (indice)

Help.ShowHelp(this, "Help.chm", HelpNavigator.Index, "SomeKeyword");

Mostra guida per argomento specifico

Help.ShowHelp(this, "Help.chm", HelpNavigator.Topic, "/SomePath/SomePage.html");

Mostra URL

Puoi mostrare qualsiasi URL nel browser predefinito utilizzando il metodo ShowHelp :

Help.ShowHelp(this, "Http://example.com");

Mostra il pulsante Guida sulla barra del titolo del modulo

È possibile mostrare un pulsante Guida alla barra del titolo di un Form . Per fare ciò, dovresti:

  1. Impostare la proprietà HelpButton del modulo su true .
  2. Imposta MinimizeBox e MaximizeBox su false .

Quindi un pulsante di aiuto apparirà sulla barra del titolo di Form :

inserisci la descrizione dell'immagine qui

Inoltre, quando fai clic sul pulsante Guida, il cursore verrà modificato in un ? cursore:

inserisci la descrizione dell'immagine qui

Quindi, se si fa clic su un Control o Form , verrà HelpRequested evento HelpRequested e anche se è stato impostato un HelpProvider , la guida per il controllo verrà visualizzata utilizzando HelpProvider .

Crea un pulsante di Guida personalizzato che funziona come HelpButton Form standard

Se hai un Form con MinimizeBox e MaximizeBox impostato su true , non puoi mostrare il pulsante Guida sulla barra del titolo di Form e perderà la funzione di fare clic sul pulsante di aiuto per convertirlo per aiutare il cursore a poter fare clic sui controlli per mostra aiuto.

Puoi fare in modo che una voce di menu su MenuStrip come un pulsante di aiuto standard. Per fare ciò, aggiungi un MenuStrip al modulo e aggiungi un ToolStripMenuItem , quindi MenuStrip l'evento Click dell'elemento:

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

Nota: se vuoi farlo usando un Button , devi anche impostare button1.Capture = false; prima di inviare il messaggio. Ma non è necessario per un ToolStripMenuItem .

Quindi quando fai clic sul menu della guida, il cursore verrà cambiato in ? cursore e agirà come quando si fa clic sul pulsante Guida standard:

Pulsante di aiuto personalizzato

Gestione di HelpButtonErrore evento di modulo

È possibile rilevare quando un utente fa clic su un HelpButton sulla barra del titolo del modulo gestendo HelpButtonClicked . Puoi lasciare che l'evento continui o cancellarlo impostando la proprietà Cancel dei suoi argomenti di evento su 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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow