HIK Elektronikus Felsőoktatási Tankönyv- és Szakkönyvtár
A Kempelen Farkas Felsőoktatási Digitális Tankönyvtár/vagy más megjelenítő által közvetített digitális tartalmat a felhasználó a szerzői jogról szóló 1999. évi LXXVI. tv. 33. paragrafus (4) bekezdésében meghatározott oktatási, illetve tudományos kutatási célra használhatja fel. A felhasználó a digitális tartalmat képernyőn megjelenítheti, letöltheti, arról elektronikus adathordozóra vagy papíralapon másolatot készíthet, adatrögzítő rendszerében tárolhatja. A Kempelen Farkas Felsőoktatási Digitális Tankönyvtár/vagy más megjelenítő weblapján található digitális tartalmak üzletszerû felhasználása tilos, valamint kizárt a digitális tartalom módosítása és átdolgozása, illetve az ilyen módon keletkezett származékos anyag további felhasználása.

16.28. HelpProvider

HelpProvider minden kérelme karbantartja a hozzákapcsolódó komponensek referenciáit. Ahhoz, hogy összekapcsoljuk a Help fájlt a HelpProvider objektummal, be kell állítani a HelpNamespace tulajdonságot. Ekkor meghatározunk egy típust, amit SetHelpNavigator-nak neveznek és hozzáadjuk a HelpNavigator értéket a specifikált komponenshez. Hozzáadhatunk egy kulcsszót a segítséghez a SetHelpKeyword-el.

Ahhoz, hogy hozzáadjunk egy jellegzetes Help stringet a komponenshez, használjuk a SetHelpString metódust. Ez a string ettől kezdődően egy pop-up menüben fog felvillanni, amikor a felhasználó rákattint az F1 billentyűre, persze csak akkor, ha a fókuszt az a komponens birtokolja amelyikről segítséget akar kapni a felhasználó.

Ha a HelpNamespace nincs még beállítva, akkor a SetHelpString-et kell hsználnod, hogy Help szöveget adhassunk. Ha már beállítottad a HelpNamespace-t és a Help string-et, akkor a Help HelpNamespace-ben van és elsőbséggel rebdelkezik.

Minta példa

A bemutatandó példa demonstrálja, hogy a HelpProvider osztály, hogyan jeleníti meg a context-sensitive segítséget a formon, ami négy cím mezőt tartalmaz. A példa a SetHelpString-et használja, hogy beállítsa a segítségnyujtó ToolTip szöveget. Amikor a context-sensitive Help gombot (vagyis a kis kérdőjelet a jobb felső sarokban) használjuk és ráklikkeljük a Help kurzort a cím mezőre, akkor a ToolTip szöveg megjeleníti a hozzá fűzött szöveget. Amikor a fókusz valamelyik cím mezőn van és megnyomjuk az F1 billentyűt, akkor az mspaint.chm Help fájl kiíródik, mert a HelpNamespace tulajdonság az mspaint.chm-re van beállítva. A HelpProvider. SetShowHelp metódusa minden cím komponenshez hozzá van rendelve, hogy azonosítsa, hogy a Help tartalom elérhető.

using System;

using System.Drawing;

using System.Windows.Forms;

public class Form1 : System.Windows.Forms.Form

{

private System.Windows.Forms.TextBox addressTextBox;

private System.Windows.Forms.Label label2;

private System.Windows.Forms.TextBox cityTextBox;

private System.Windows.Forms.Label label3;

private System.Windows.Forms.TextBox stateTextBox;

private System.Windows.Forms.TextBox zipTextBox;

private System.Windows.Forms.HelpProvider helpProvider1;

private System.Windows.Forms.Label helpLabel;

[STAThread]

static void Main()

{

Application.Run(new Form1());

}

public Form1()

{

this.addressTextBox = new System.Windows.Forms.TextBox();

this.helpLabel = new System.Windows.Forms.Label();

this.label2 = new System.Windows.Forms.Label();

this.cityTextBox = new System.Windows.Forms.TextBox();

this.label3 = new System.Windows.Forms.Label();

this.stateTextBox = new System.Windows.Forms.TextBox();

this.zipTextBox = new System.Windows.Forms.TextBox();

// Help Label

this.helpLabel.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;

this.helpLabel.Location = new System.Drawing.Point(8, 80);

this.helpLabel.Size = new System.Drawing.Size(272, 72);

this.helpLabel.Text = "Click the Help button in the title bar, then click a control " +

"to see a Help tooltip for the control. Click on a control and press F1 to invoke " +

"the Help system with a sample Help file.";

// Address Label

this.label2.Location = new System.Drawing.Point(16, 8);

this.label2.Size = new System.Drawing.Size(100, 16);

this.label2.Text = "Address:";

// Comma Label

this.label3.Location = new System.Drawing.Point(136, 56);

this.label3.Size = new System.Drawing.Size(16, 16);

this.label3.Text = ",";

// Create the HelpProvider.

this.helpProvider1 = new System.Windows.Forms.HelpProvider();

// Tell the HelpProvider what controls to provide help for, and

// what the help string is.

this.helpProvider1.SetShowHelp(this.addressTextBox, true);

this.helpProvider1.SetHelpString(this.addressTextBox, "Enter the street address in this text box.");

this.helpProvider1.SetShowHelp(this.cityTextBox, true);

this.helpProvider1.SetHelpString(this.cityTextBox, "Enter the city here.");

this.helpProvider1.SetShowHelp(this.stateTextBox, true);

this.helpProvider1.SetHelpString(this.stateTextBox, "Enter the state in this text box.");

this.helpProvider1.SetShowHelp(this.zipTextBox, true);

this.helpProvider1.SetHelpString(this.zipTextBox, "Enter the zip code here.");

// Set what the Help file will be for the HelpProvider.

this.helpProvider1.HelpNamespace = "mspaint.chm";

// Sets properties for the different address fields.

// Address TextBox

this.addressTextBox.Location = new System.Drawing.Point(16, 24);

this.addressTextBox.Size = new System.Drawing.Size(264, 20);

this.addressTextBox.TabIndex = 0;

this.addressTextBox.Text = "";

// City TextBox

this.cityTextBox.Location = new System.Drawing.Point(16, 48);

this.cityTextBox.Size = new System.Drawing.Size(120, 20);

this.cityTextBox.TabIndex = 3;

this.cityTextBox.Text = "";

// State TextBox

this.stateTextBox.Location = new System.Drawing.Point(152, 48);

this.stateTextBox.MaxLength = 2;

this.stateTextBox.Size = new System.Drawing.Size(32, 20);

this.stateTextBox.TabIndex = 5;

this.stateTextBox.Text = "";

// Zip TextBox

this.zipTextBox.Location = new System.Drawing.Point(192, 48);

this.zipTextBox.Size = new System.Drawing.Size(88, 20);

this.zipTextBox.TabIndex = 6;

this.zipTextBox.Text = "";

// Add the controls to the form.

this.Controls.AddRange(new System.Windows.Forms.Control[] {

this.zipTextBox, this.stateTextBox,

this.label3, this.cityTextBox,

this.label2, this.helpLabel,

this.addressTextBox});

// Set the form to look like a dialog, and show the HelpButton.

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;

this.HelpButton = true;

this.MaximizeBox = false;

this.MinimizeBox = false;

this.ClientSize = new System.Drawing.Size(292, 160);

this.Text = "Help Provider Demonstration";

}

}