winforms
Pomoc w integracji
Szukaj…
Uwagi
Możesz udzielać pomocy dotyczącej formularzy i formantów w aplikacjach formularzy Windows na różne sposoby. Możesz wyświetlić wyskakującą pomoc, otworzyć plik CHM lub adres URL. Możesz wyświetlić pomoc kontekstową dla formularzy, kontrolek i okien dialogowych.
Komponent HelpProvider
Można skonfigurować składnik HelpProvider
, aby zapewniał pomoc kontekstową dla tego składnika. W ten sposób, gdy użytkownik naciśnie klawisz F1 lub przycisk Pomoc w formularzu, możesz automatycznie:
- Pokaż wyskakujące okienko pomocy kontekstowej dla kontrolek
- Otwórz plik CHM na podstawie kontekstu (Pokaż spis treści, Pokaż słowo kluczowe lub indeks, pokaż temat)
- Przejdź do adresu URL za pomocą domyślnej przeglądarki
Klasa pomocy
Możesz użyć klasy Help
w kodzie, aby zapewnić następujące rodzaje pomocy:
- Pokaż wyskakujące okienko pomocy dla kontrolki
- Otwórz plik CHM na podstawie kontekstu (Pokaż spis treści, Pokaż słowo kluczowe lub indeks, pokaż temat)
- Przejdź do adresu URL za pomocą domyślnej przeglądarki
Zdarzenie HelpRequested
Możesz obsłużyć zdarzenie HelpRequested
obiektów Control
lub Form
aby wykonać niestandardowe akcje, gdy użytkownik naciśnie F1 lub kliknie przycisk Pomoc formularza.
Przycisk pomocy formularza
Możesz skonfigurować Form
aby wyświetlał przycisk Pomoc na pasku tytułu. W ten sposób, jeśli użytkownik kliknie przycisk Pomoc, kursor zmieni się na ?
kursor i po kliknięciu dowolnego punktu zostanie wyświetlona wszelka pomoc kontekstowa powiązana z kontrolką za pomocą programu HelpProvider
.
Przycisk pomocy MessgeBox i CommonDialogs
Możesz zapewnić pomoc dla MessageBox
, OpenFileDialog
, SaveDialog
i ColorDialog
za pomocą przycisku Pomoc komponentów.
Składnik podpowiedzi
Możesz użyć składnika ToolTip
, aby wyświetlić tekst pomocy, gdy użytkownik wskazuje na elementy sterujące. ToolTip
można przypisać do dowolnej kontrolki.
Uwaga
Korzystanie z HelpProvider
i klasy Help
Możesz wyświetlać skompilowane pliki Pomocy (.chm) lub pliki HTML w formacie Pomocy HTML. Skompilowane pliki pomocy zawierają spis treści, indeks, możliwości wyszukiwania i linki słów kluczowych na stronach. Skróty działają tylko w skompilowanych plikach Pomocy. Możesz wygenerować pliki Pomocy HTML 1.x, korzystając z Warsztatu Pomocy HTML. Aby uzyskać więcej informacji o Pomocy HTML, zobacz „Warsztat Pomocy HTML” i inne tematy Pomocy HTML w Pomocy Microsoft HTML .
Pokaż plik pomocy
Help Class
zawiera silnik HTML Help 1.0. Za pomocą obiektu Pomoc można wyświetlić skompilowane pliki pomocy (.chm) lub pliki HTML w formacie pomocy HTML. Skompilowane pliki pomocy zawierają spis treści, indeks, wyszukiwanie i linki słów kluczowych na stronach. Skróty działają tylko w skompilowanych plikach Pomocy. Możesz wygenerować pliki HTML Help 1.x za pomocą darmowego narzędzia Microsft o nazwie HTML Help Workshop
.
Łatwy sposób na wyświetlenie skompilowanego pliku pomocy w drugim oknie:
DO#
Help.ShowHelp(this, helpProviderMain.HelpNamespace);
VB.NET
Help.ShowHelp(Me, hlpProviderMain.HelpNamespace)
Pokaż pomoc dla MessageBox
Możesz pomóc w wyświetlaniu wiadomości na różne sposoby. Możesz skonfigurować MessageBox
aby wyświetlał przycisk Help
lub nie. Możesz także skonfigurować MessageBox
w taki sposób, że gdy użytkownik poprosi o pomoc, klikając przycisk Pomoc lub naciskając F1 , wyświetla plik CHM lub nawiguje do adresu URL lub wykonuje akcję niestandardową. Oto kilka przykładów w tym temacie.
We wszystkich poniższych przykładach MessageBox
wyglądałby tak:
Pokaż plik CHM i przejdź do słowa kluczowego (indeksu)
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm", HelpNavigator.KeywordIndex, "SomeKeyword");
Pokaż plik CHM i przejdź do tematu
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm", HelpNavigator.Topic, "/SomePath/SomePage.html");
Pokaż plik CHM i przejdź do pierwszej strony pomocy w spisie treści
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm");
Otwórz domyślną przeglądarkę i przejdź do adresu URL
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"http://example.com");
Wykonaj niestandardową akcję po naciśnięciu przycisku Pomoc lub klawisza F1
W takim przypadku należy obsłużyć zdarzenie HelpRequested
elementu nadrzędnego MessageBox
i wykonać niestandardową operację:
private void Form1_HelpRequested(object sender, HelpEventArgs hlpevent)
{
// Perform custom action, for example show a custom help form
var f = new Form();
f.ShowDialog();
}
Następnie możesz wyświetlić MessageBox
z przyciskiem Pomoc:
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0, true);
Lub pokaż to bez przycisku Pomoc:
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0, false);
Pokaż pomoc dla CommonDialogs
Możesz udzielić pomocy dla OpenFileDialog
, SaveFileDialog
i ColorDialog
. Aby to zrobić, ustaw właściwość ShowHelp
okna dialogowego na wartość true
i HelpRequest
zdarzenie HelpRequest
dla okna dialogowego:
void openFileDialog1_HelpRequest(object sender, EventArgs e)
{
//Perform custom action
Help.ShowHelp(this, "Http://example.com");
}
Uwaga
- Zdarzenie zostanie zgłoszone tylko wtedy, gdy dla
ShowHelp
zostanie ustawionaShowHelp
true
. - Wydarzenie zostanie podniesione tylko poprzez kliknięcie przycisku
Help
i nie zostanie podniesione za pomocą klawisza F1.
Na poniższym obrazku widać OpenFileDialog
z przyciskiem Pomoc:
Obsługa pomocy Żądane zdarzenie kontroli i formularza
Gdy użytkownik naciśnie F1 na HelpRequested
lub kliknie przycisk Pomoc w formularzu ( ? ), A następnie kliknie kontrolkę, zostanie HelpRequested
zdarzenie HelpRequested
.
Możesz obsłużyć to zdarzenie, aby zapewnić niestandardowe działanie, gdy użytkownik poprosi o pomoc w zakresie formantów lub formularza.
HelpRequested
obsługuje mechanizm tworzenia bąbelków. Uruchamia się dla twojej aktywnej kontroli, a jeśli nie obsłużysz zdarzenia i nie ustawisz właściwości Handled
jego zdarzenia arg na wartość true
, wówczas zostanie przeniesiony do nadrzędnej hierarchii kontroli do postaci.
Na przykład, jeśli HelpRequested
zdarzenie HelpRequested
formularza jak poniżej, wtedy po naciśnięciu F1 pojawi się okno komunikatu i pokaże nazwę aktywnej kontroli, ale dla textBox1
wyświetli inną wiadomość:
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");
}
Możesz wykonać dowolną inną niestandardową akcję, np. Nawigację do adresu URL lub wyświetlenie pliku CHM za Help
klasy Help
.
Pokaż pomoc za pomocą klasy Pomocy
Możesz użyć klasy Help
w kodzie, aby zapewnić następujące rodzaje pomocy:
- Pokaż wyskakujące okienko pomocy dla kontrolki
- Otwórz plik CHM na podstawie kontekstu (Pokaż spis treści, Pokaż słowo kluczowe lub indeks, pokaż temat)
- Przejdź do adresu URL za pomocą domyślnej przeglądarki
Pokaż wyskakujące okno Pomoc
Możesz użyć Help.ShowPopup
aby wyświetlić wyskakujące okno pomocy:
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));
}
Wyświetli takie wyskakujące okno pomocy w miejscu wskaźnika myszy:
Pokaż plik pomocy CHM
Możesz użyć różnych przeciążeń metody Help.ShowHelp
, aby wyświetlić plik CHM i przejść do słowa kluczowego, tematu, indeksu lub spisu treści:
Pokaż spis treści pomocy
Help.ShowHelp(this, "Help.chm");
Pokaż pomoc dla określonego słowa kluczowego (indeks)
Help.ShowHelp(this, "Help.chm", HelpNavigator.Index, "SomeKeyword");
Pokaż pomoc dla określonego tematu
Help.ShowHelp(this, "Help.chm", HelpNavigator.Topic, "/SomePath/SomePage.html");
Pokaż adres URL
Możesz wyświetlić dowolny adres URL w domyślnej przeglądarce za pomocą metody ShowHelp
:
Help.ShowHelp(this, "Http://example.com");
Pokaż przycisk pomocy na pasku tytułu formularza
Możesz wyświetlić przycisk Pomoc na pasku tytułu Form
. Aby to zrobić, powinieneś:
- Ustaw właściwość
HelpButton
formy natrue
. - Ustaw
MinimizeBox
iMaximizeBox
nafalse
.
Następnie na pasku tytułu Form
pojawi się przycisk pomocy:
Również po kliknięciu przycisku Pomoc kursor zmieni się na ?
kursor:
Następnie, po kliknięciu Control
lub Form
, HelpRequested
zostanie zdarzenie HelpRequested
a także jeśli skonfigurowano HelpProvider
, pomoc dla formantu zostanie wyświetlona za pomocą HelpProvider
.
Utwórz niestandardowy przycisk Pomoc, który działa jak standardowy Formularz pomocy
Jeśli masz Form
z wartościami MinimizeBox
i MaximizeBox
ustawionymi na true
, nie możesz wyświetlić przycisku Pomoc na pasku tytułu Form
i utracisz funkcję klikania przycisku pomocy, aby go przekonwertować, aby kursor mógł klikać elementy sterujące, aby Pokaż pomoc.
Możesz sprawić, aby element menu na MenuStrip
działał jak standardowy przycisk Pomoc. Aby to zrobić, dodaj MenuStrip
do formularza i dodaj do niego ToolStripMenuItem
, a następnie MenuStrip
zdarzenie Click
elementu:
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);
}
Uwaga: Jeśli chcesz to zrobić za pomocą Button
, musisz również ustawić button1.Capture = false;
przed wysłaniem wiadomości. Ale nie jest to konieczne w przypadku ToolStripMenuItem
.
Następnie po kliknięciu menu pomocy kursor zmieni się na ?
kursor i będzie działać tak, jak po kliknięciu standardowego przycisku Pomoc:
Obsługa zdarzenia HelpButtonClicked zdarzenia Form
Możesz wykryć, kiedy użytkownik kliknął przycisk HelpButton na HelpButton
tytułu formularza, korzystając z HelpButtonClicked
. Możesz pozwolić wydarzeniu kontynuować lub anulować je, ustawiając właściwość Cancel
jego zdarzenia na true
.
private void Form1_HelpButtonClicked(object sender, CancelEventArgs e)
{
e.Cancel = true;
//Perform some custom action
MessageBox.Show("Some Custom Help");
}