winforms
Aide à l'intégration
Recherche…
Remarques
Vous pouvez fournir une aide pour les formulaires et les contrôles dans une application Windows Forms de différentes manières. Vous pouvez afficher une aide contextuelle, ouvrir un fichier CHM ou une URL. Vous pouvez afficher une aide contextuelle pour les formulaires, les contrôles et les boîtes de dialogue.
Composant HelpProvider
Vous pouvez configurer un composant HelpProvider
pour fournir une aide contextuelle pour le composant. De cette façon, lorsque l'utilisateur appuie sur la touche F1 ou sur le bouton Aide du formulaire, vous pouvez automatiquement:
- Afficher une fenêtre contextuelle d'aide contextuelle pour les contrôles
- Ouvrez un fichier CHM en fonction du contexte (Afficher la table des matières, Afficher un mot-clé ou un index, afficher un sujet)
- Accédez à une URL à l'aide du navigateur par défaut
Classe d'aide
Vous pouvez utiliser la classe d' Help
dans le code pour fournir ce type d'aide:
- Afficher une fenêtre d'aide pour un contrôle
- Ouvrez un fichier CHM en fonction du contexte (Afficher la table des matières, Afficher un mot-clé ou un index, afficher un sujet)
- Accédez à une URL à l'aide du navigateur par défaut
Evénement HelpRequested
Vous pouvez gérer l'événement HelpRequested
des objets Control
ou Form
pour effectuer des actions personnalisées lorsque l'utilisateur appuie sur F1 ou sur le bouton Aide du formulaire.
Bouton d'aide du formulaire
Vous pouvez configurer le Form
pour afficher le bouton Aide sur la barre de titre. De cette façon, si l'utilisateur clique sur le bouton Aide, le curseur se transforme en un ?
Après avoir cliqué sur un point, toute aide contextuelle associée au contrôle utilisant HelpProvider
sera HelpProvider
.
Bouton d'aide de MessgeBox et CommonDialogs
Vous pouvez fournir une aide pour MessageBox
, OpenFileDialog
, SaveDialog
et ColorDialog
utilisant le bouton Aide des composants.
Composant ToolTip
Vous pouvez utiliser le composant ToolTip
pour afficher du texte d'aide lorsque l'utilisateur pointe des contrôles. Une ToolTip
peut être associée à n'importe quel contrôle.
Remarque
Utilisation de HelpProvider
et de la classe Help
Vous pouvez afficher les fichiers d'aide compilés (.chm) ou les fichiers HTML au format HTML Help. Les fichiers d'aide compilés fournissent une table des matières, un index, une fonction de recherche et des liens de mots clés dans les pages. Les raccourcis ne fonctionnent que dans les fichiers d'aide compilés. Vous pouvez générer des fichiers HTML Help 1.x à l'aide de HTML Help Workshop. Pour plus d'informations sur l'aide HTML, voir "HTML Help Workshop" et d'autres rubriques d'aide HTML dans Microsoft HTML Help .
Afficher le fichier d'aide
La Help Class
encapsule le moteur HTML Help 1.0. Vous pouvez utiliser l'objet d'aide pour afficher les fichiers d'aide compilés (.chm) ou les fichiers HTML au format HTML Help. Les fichiers d'aide compilés fournissent des tables des matières, des index, des recherches et des liens de mots clés dans les pages. Les raccourcis ne fonctionnent que dans les fichiers d'aide compilés. Vous pouvez générer des fichiers HTML Help 1.x avec un outil gratuit de Microsft appelé HTML Help Workshop
.
Un moyen facile d'afficher un fichier d'aide compilé dans une seconde fenêtre:
C #
Help.ShowHelp(this, helpProviderMain.HelpNamespace);
VB.NET
Help.ShowHelp(Me, hlpProviderMain.HelpNamespace)
Afficher l'aide de MessageBox
Vous pouvez fournir de l'aide pour la boîte de message de différentes manières. Vous pouvez configurer un MessageBox
pour afficher un bouton Help
ou non. Vous pouvez également configurer MessageBox
de manière à ce que lorsque l'utilisateur demande de l'aide en cliquant sur le bouton Aide ou en appuyant sur F1 , il affiche un fichier CHM ou navigue vers une URL ou effectue une action personnalisée. Voici quelques exemples dans ce sujet.
Dans tous les exemples ci-dessous, le MessageBox
serait comme ceci:
Afficher un fichier CHM et accéder à un mot clé (index)
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm", HelpNavigator.KeywordIndex, "SomeKeyword");
Afficher un fichier CHM et accéder à un sujet
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm", HelpNavigator.Topic, "/SomePath/SomePage.html");
Afficher un fichier CHM et parcourir la première page d'aide dans la table des matières
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm");
Ouvrez le navigateur par défaut et accédez à une URL
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"http://example.com");
Effectuez une action personnalisée lorsque vous appuyez sur le bouton Aide ou la touche F1
Dans ce cas, vous devez gérer l'événement HelpRequested
du parent de MessageBox
et effectuer une opération personnalisée:
private void Form1_HelpRequested(object sender, HelpEventArgs hlpevent)
{
// Perform custom action, for example show a custom help form
var f = new Form();
f.ShowDialog();
}
Ensuite, vous pouvez afficher le bouton MessageBox
avec l'aide:
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0, true);
Ou affichez-le sans bouton d'aide:
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0, false);
Afficher l'aide pour CommonDialogs
Vous pouvez fournir une aide pour OpenFileDialog
, SaveFileDialog
et ColorDialog
. Pour ce faire, définissez la propriété ShowHelp
de dialog sur true
et gérez l'événement HelpRequest
pour la boîte de dialogue:
void openFileDialog1_HelpRequest(object sender, EventArgs e)
{
//Perform custom action
Help.ShowHelp(this, "Http://example.com");
}
Remarque
- L'événement sera déclenché uniquement si vous définissez
ShowHelp
surtrue
. - L'événement ne sera déclenché que par un clic sur le bouton
Help
et ne sera pas déclenché avec la touche F1.
Dans l'image ci-dessous, vous pouvez voir un OpenFileDialog
avec un bouton d'aide:
Gestion de l'événement EventRequested des contrôles et du formulaire
Lorsqu'un utilisateur appuie sur F1 sur un contrôle ou clique sur le bouton Aide de formulaire ( ? ) Puis clique sur un contrôle, l'événement HelpRequested
.
Vous pouvez gérer cet événement pour fournir une action personnalisée lorsque l'utilisateur demande de l'aide pour des contrôles ou un formulaire.
Le HelpRequested
prend en charge le mécanisme de création de bulles. Il se déclenche pour votre contrôle actif et si vous ne gérez pas l'événement et ne définissez pas la propriété Handled
de son argument d'événement sur true
, il se transforme en bulle jusqu'à la hiérarchie de contrôle parent.
Par exemple, si vous gérez l'événement HelpRequested
du formulaire comme ci-dessous, lorsque vous appuyez sur F1, une boîte de message apparaîtra et affichera le nom du contrôle actif, mais pour textBox1
il affichera un message différent:
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");
}
Vous pouvez effectuer toute autre action personnalisée, telle que la navigation vers une URL ou l'affichage d'un fichier CHM à l' Help
classe d' Help
.
Afficher l'aide à l'aide de la classe d'aide
Vous pouvez utiliser la classe d' Help
dans le code pour fournir ce type d'aide:
- Afficher une fenêtre d'aide pour un contrôle
- Ouvrez un fichier CHM en fonction du contexte (Afficher la table des matières, Afficher un mot-clé ou un index, afficher un sujet)
- Accédez à une URL à l'aide du navigateur par défaut
Afficher la fenêtre contextuelle Aide
Vous pouvez utiliser Help.ShowPopup
pour afficher une fenêtre contextuelle d'aide:
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));
}
Il affichera cette aide contextuelle à l'emplacement du pointeur de la souris:
Afficher le fichier d'aide CHM
Vous pouvez utiliser différentes surcharges de la méthode Help.ShowHelp
pour afficher un fichier CHM et accéder à un mot-clé, un sujet, un index ou une table de contenu:
Afficher la table des matières de l'aide
Help.ShowHelp(this, "Help.chm");
Afficher l'aide pour un mot clé spécifique (index)
Help.ShowHelp(this, "Help.chm", HelpNavigator.Index, "SomeKeyword");
Afficher l'aide pour un sujet spécifique
Help.ShowHelp(this, "Help.chm", HelpNavigator.Topic, "/SomePath/SomePage.html");
Afficher l'URL
Vous pouvez afficher n'importe quelle URL dans le navigateur par défaut à l'aide de la méthode ShowHelp
:
Help.ShowHelp(this, "Http://example.com");
Afficher le bouton d'aide sur la barre de titre du formulaire
Vous pouvez afficher un bouton d'aide sur la barre de titre d'un Form
. Pour ce faire, vous devriez:
- Définissez la propriété
HelpButton
du formulaire surtrue
. - Définissez
MinimizeBox
etMaximizeBox
surfalse
.
Ensuite, un bouton d'aide apparaîtra sur la barre de titre du Form
:
De plus, lorsque vous cliquez sur le bouton Aide, le curseur devient un ?
le curseur:
Si vous cliquez ensuite sur un Control
ou un Form
, l'événement HelpRequested
sera HelpRequested
et si vous avez configuré un HelpProvider
, l'aide du contrôle sera affichée à l'aide de HelpProvider
.
Créer un bouton d'aide personnalisé qui agit comme un bouton d'aide standard
Si vous avez un Form
avec MinimizeBox
et MaximizeBox
défini sur true
, vous ne pouvez pas afficher le bouton Aide sur la barre de titre de Form
et vous perdrez la fonction de cliquer sur le bouton d'aide pour le convertir afin de pouvoir cliquer sur les contrôles. montrer de l'aide.
Vous pouvez faire un élément de menu sur MenuStrip
agir comme bouton d'aide standard. Pour ce faire, ajoutez un MenuStrip
au formulaire et ajoutez-y un ToolStripMenuItem
, puis gérez l'événement Click
de l'élément:
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);
}
Remarque: Si vous voulez le faire en utilisant un Button
, vous devez également définir button1.Capture = false;
avant d'envoyer le message. Mais ce n'est pas nécessaire pour un ToolStripMenuItem
.
Ensuite, lorsque vous cliquez sur le menu d'aide, le curseur sera remplacé par ?
curseur et agira comme lorsque vous cliquez sur le bouton d'aide standard:
Gestion de l'événement HelpButtonClicked de formulaire
Vous pouvez détecter lorsqu'un utilisateur a cliqué sur un HelpButton
d' HelpButton
sur la barre de titre du formulaire en gérant HelpButtonClicked
. Vous pouvez laisser l'événement continuer ou l'annuler en définissant la propriété Cancel
de ses arguments d'événement sur true
.
private void Form1_HelpButtonClicked(object sender, CancelEventArgs e)
{
e.Cancel = true;
//Perform some custom action
MessageBox.Show("Some Custom Help");
}