winforms
Aiuta l'integrazione
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ì:
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
sutrue
. - 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:
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:
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:
- Impostare la proprietà
HelpButton
del modulo sutrue
. - Imposta
MinimizeBox
eMaximizeBox
sufalse
.
Quindi un pulsante di aiuto apparirà sulla barra del titolo di Form
:
Inoltre, quando fai clic sul pulsante Guida, il cursore verrà modificato in un ?
cursore:
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:
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");
}