HelpProvider.GetHelpString(Control) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 컨트롤에 대한 팝업 도움말 창의 콘텐츠를 반환합니다.
public:
virtual System::String ^ GetHelpString(System::Windows::Forms::Control ^ ctl);
public virtual string GetHelpString (System.Windows.Forms.Control ctl);
abstract member GetHelpString : System.Windows.Forms.Control -> string
override this.GetHelpString : System.Windows.Forms.Control -> string
Public Overridable Function GetHelpString (ctl As Control) As String
매개 변수
반환
이 컨트롤과 관련된 도움말 문자열입니다. 기본값은 null
입니다.
예제
다음 코드 예제에서는 및 클래스를 KeyPressEventHandler KeyEventHandler 사용하여 입력을 필터링하는 방법을 보여 줍니다. 또한 메서드를 GetHelpString 보여 줍니다. 전체 예제입니다. 프로젝트에 추가하면 실행할 준비가 된 것입니다.
#using <System.dll>
#using <Microsoft.VisualBasic.dll>
#using <System.Windows.Forms.dll>
#using <System.Drawing.dll>
using namespace System::Drawing;
using namespace System::Windows::Forms;
using namespace System;
using namespace Microsoft::VisualBasic;
public ref class Form1: public System::Windows::Forms::Form
{
public:
Form1()
: Form()
{
InitializeComponent();
AddHandlers();
InitializeFormHelp();
}
public private:
System::Windows::Forms::Label ^ Label1;
System::Windows::Forms::Label ^ Label2;
System::Windows::Forms::Label ^ Label3;
System::Windows::Forms::TextBox^ withdrawal;
System::Windows::Forms::TextBox^ deposit;
System::Windows::Forms::ErrorProvider^ ErrorProvider1;
System::Windows::Forms::Label ^ balance;
System::Windows::Forms::HelpProvider^ HelpProvider1;
private:
[System::Diagnostics::DebuggerStepThrough]
void InitializeComponent()
{
this->withdrawal = gcnew System::Windows::Forms::TextBox;
this->deposit = gcnew System::Windows::Forms::TextBox;
this->Label1 = gcnew System::Windows::Forms::Label;
this->Label2 = gcnew System::Windows::Forms::Label;
this->Label3 = gcnew System::Windows::Forms::Label;
this->ErrorProvider1 = gcnew System::Windows::Forms::ErrorProvider;
this->balance = gcnew System::Windows::Forms::Label;
this->HelpProvider1 = gcnew System::Windows::Forms::HelpProvider;
this->SuspendLayout();
this->withdrawal->Location = System::Drawing::Point( 32, 200 );
this->withdrawal->Name = "withdrawal";
this->withdrawal->Size = System::Drawing::Size( 88, 20 );
this->withdrawal->TabIndex = 0;
this->withdrawal->Text = "";
this->deposit->Location = System::Drawing::Point( 168, 200 );
this->deposit->Name = "deposit";
this->deposit->TabIndex = 1;
this->deposit->Text = "";
this->Label1->Location = System::Drawing::Point( 56, 88 );
this->Label1->Name = "Label1";
this->Label1->Size = System::Drawing::Size( 96, 24 );
this->Label1->TabIndex = 2;
this->Label1->Text = "Account Balance:";
this->Label2->Location = System::Drawing::Point( 168, 168 );
this->Label2->Name = "Label2";
this->Label2->Size = System::Drawing::Size( 96, 24 );
this->Label2->TabIndex = 4;
this->Label2->Text = "Deposit:";
this->Label3->Location = System::Drawing::Point( 32, 168 );
this->Label3->Name = "Label3";
this->Label3->Size = System::Drawing::Size( 96, 24 );
this->Label3->TabIndex = 5;
this->Label3->Text = "Withdrawal:";
this->ErrorProvider1->ContainerControl = this;
this->balance->BorderStyle = System::Windows::Forms::BorderStyle::Fixed3D;
this->balance->Location = System::Drawing::Point( 152, 88 );
this->balance->Name = "balance";
this->balance->TabIndex = 6;
this->balance->Text = "345.65";
this->balance->TextAlign = System::Drawing::ContentAlignment::MiddleLeft;
this->ClientSize = System::Drawing::Size( 292, 266 );
this->Controls->Add( this->balance );
this->Controls->Add( this->Label3 );
this->Controls->Add( this->Label2 );
this->Controls->Add( this->Label1 );
this->Controls->Add( this->deposit );
this->Controls->Add( this->withdrawal );
this->Name = "Form1";
this->Text = "Form1";
this->ResumeLayout( false );
}
void AddHandlers()
{
// Add the event-handler delegates to handled the KeyDown
// events.
deposit->KeyDown += gcnew KeyEventHandler( this, &Form1::ProcessEntry );
withdrawal->KeyDown += gcnew KeyEventHandler( this, &Form1::ProcessEntry );
// Add the event-handler delegates to handled the KeyPress
// events.
deposit->KeyPress += gcnew KeyPressEventHandler( this, &Form1::CheckForDigits );
withdrawal->KeyPress += gcnew KeyPressEventHandler( this, &Form1::CheckForDigits );
}
void InitializeFormHelp()
{
// Set the form's border to the FixedDialog style.
this->FormBorderStyle = ::FormBorderStyle::FixedDialog;
// Remove the Maximize and Minimize buttons from the form.
this->MaximizeBox = false;
this->MinimizeBox = false;
// Add the Help button to the form.
this->HelpButton = true;
// Set the Help string for the deposit textBox.
HelpProvider1->SetHelpString( deposit, "Enter an amount in the format xxx.xx"
"and press Enter to deposit." );
// Set the Help string for the withdrawal textBox.
HelpProvider1->SetHelpString( withdrawal, "Enter an amount in the format xxx.xx"
"and press Enter to withdraw." );
}
void ProcessEntry( Object^ sender, KeyEventArgs^ e )
{
// Cast the sender back to a TextBox.
Control^ textBoxSender = dynamic_cast<TextBox^>(sender);
// Set the error description to an empty string ().
ErrorProvider1->SetError( textBoxSender, "" );
// Declare the variable to hold the new balance.
double newBalance = 0;
// Wrap the code in a Try/Catch block to catch
// errors that can occur when converting the string
// to a double.
try
{
if ( e->KeyCode == Keys::Enter )
{
if ( textBoxSender->Name->Equals( "withdrawal" ) )
{
newBalance = Double::Parse( balance->Text ) - Double::Parse( withdrawal->Text );
withdrawal->Text = "";
}
else
if ( textBoxSender->Name->Equals( "deposit" ) )
{
newBalance = Double::Parse( balance->Text ) + Double::Parse( deposit->Text );
deposit->Text = "";
}
// Check the value of new balance and set the
// Forecolor property accordingly.
if ( newBalance < 0 )
{
balance->ForeColor = Color::Red;
}
else
{
balance->ForeColor = Color::Black;
}
// Set the text of the balance text box
// to the newBalance value.
balance->Text = newBalance.ToString();
}
}
catch ( FormatException^ )
{
// If a FormatException is thrown, set the
// error string to the HelpString message for
// the control.
ErrorProvider1->SetError( textBoxSender, HelpProvider1->GetHelpString( textBoxSender ) );
}
}
void CheckForDigits( Object^ /*sender*/, KeyPressEventArgs^ e )
{
// If the character is not a digit, period, or backspace then
// ignore it by setting the KeyPressEventArgs.Handled
// property to true.
if ( !(Char::IsDigit( e->KeyChar ) || e->KeyChar == '.' || e->KeyChar == (char)(Keys::Back)) )
{
e->Handled = true;
}
}
};
int main()
{
Application::Run( gcnew Form1 );
}
using System.Drawing;
using System.Windows.Forms;
using System;
using Microsoft.VisualBasic;
public class Form1:
System.Windows.Forms.Form
{
public Form1() : base()
{
InitializeComponent();
AddHandlers();
InitializeFormHelp();
}
internal System.Windows.Forms.Label Label1;
internal System.Windows.Forms.Label Label2;
internal System.Windows.Forms.Label Label3;
internal System.Windows.Forms.TextBox withdrawal;
internal System.Windows.Forms.TextBox deposit;
internal System.Windows.Forms.ErrorProvider ErrorProvider1;
internal System.Windows.Forms.Label balance;
internal System.Windows.Forms.HelpProvider HelpProvider1;
[System.Diagnostics.DebuggerStepThrough]
private void InitializeComponent()
{
this.withdrawal = new System.Windows.Forms.TextBox();
this.deposit = new System.Windows.Forms.TextBox();
this.Label1 = new System.Windows.Forms.Label();
this.Label2 = new System.Windows.Forms.Label();
this.Label3 = new System.Windows.Forms.Label();
this.ErrorProvider1 = new System.Windows.Forms.ErrorProvider();
this.balance = new System.Windows.Forms.Label();
this.HelpProvider1 = new System.Windows.Forms.HelpProvider();
this.SuspendLayout();
this.withdrawal.Location = new System.Drawing.Point(32, 200);
this.withdrawal.Name = "withdrawal";
this.withdrawal.Size = new System.Drawing.Size(88, 20);
this.withdrawal.TabIndex = 0;
this.withdrawal.Text = "";
this.deposit.Location = new System.Drawing.Point(168, 200);
this.deposit.Name = "deposit";
this.deposit.TabIndex = 1;
this.deposit.Text = "";
this.Label1.Location = new System.Drawing.Point(56, 88);
this.Label1.Name = "Label1";
this.Label1.Size = new System.Drawing.Size(96, 24);
this.Label1.TabIndex = 2;
this.Label1.Text = "Account Balance:";
this.Label2.Location = new System.Drawing.Point(168, 168);
this.Label2.Name = "Label2";
this.Label2.Size = new System.Drawing.Size(96, 24);
this.Label2.TabIndex = 4;
this.Label2.Text = "Deposit:";
this.Label3.Location = new System.Drawing.Point(32, 168);
this.Label3.Name = "Label3";
this.Label3.Size = new System.Drawing.Size(96, 24);
this.Label3.TabIndex = 5;
this.Label3.Text = "Withdrawal:";
this.ErrorProvider1.ContainerControl = this;
this.balance.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.balance.Location = new System.Drawing.Point(152, 88);
this.balance.Name = "balance";
this.balance.TabIndex = 6;
this.balance.Text = "345.65";
this.balance.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.ClientSize = new System.Drawing.Size(292, 266);
this.Controls.Add(this.balance);
this.Controls.Add(this.Label3);
this.Controls.Add(this.Label2);
this.Controls.Add(this.Label1);
this.Controls.Add(this.deposit);
this.Controls.Add(this.withdrawal);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
private void AddHandlers()
{
// Add the event-handler delegates to handled the KeyDown
// events.
deposit.KeyDown +=new KeyEventHandler(ProcessEntry);
withdrawal.KeyDown += new KeyEventHandler(ProcessEntry);
// Add the event-handler delegates to handled the KeyPress
// events.
deposit.KeyPress += new KeyPressEventHandler(CheckForDigits);
withdrawal.KeyPress +=
new KeyPressEventHandler(CheckForDigits);
}
private void InitializeFormHelp()
{
// Set the form's border to the FixedDialog style.
this.FormBorderStyle = FormBorderStyle.FixedDialog;
// Remove the Maximize and Minimize buttons from the form.
this.MaximizeBox = false;
this.MinimizeBox = false;
// Add the Help button to the form.
this.HelpButton = true;
// Set the Help string for the deposit textBox.
HelpProvider1.SetHelpString(deposit,
"Enter an amount in the format xxx.xx" +
"and press Enter to deposit.");
// Set the Help string for the withdrawal textBox.
HelpProvider1.SetHelpString(withdrawal,
"Enter an amount in the format xxx.xx" +
"and press Enter to withdraw.");
}
private void ProcessEntry(object sender, KeyEventArgs e)
{
// Cast the sender back to a TextBox.
Control textBoxSender = (TextBox) sender;
// Set the error description to an empty string ().
ErrorProvider1.SetError(textBoxSender, "");
// Declare the variable to hold the new balance.
double newBalance = 0;
// Wrap the code in a Try/Catch block to catch
// errors that can occur when converting the string
// to a double.
try
{
if (e.KeyCode==Keys.Enter)
// Switch on the text box that received
// the KeyPress event. Convert the text to type double,
// and compute the new balance.
{
switch(textBoxSender.Name)
{
case "withdrawal":
newBalance = Double.Parse(balance.Text)
- Double.Parse(withdrawal.Text);
withdrawal.Text = "";
break;
case "deposit":
newBalance = Double.Parse(balance.Text)
+ Double.Parse(deposit.Text);
deposit.Text = "";
break;
}
// Check the value of new balance and set the
// Forecolor property accordingly.
if (newBalance < 0)
{
balance.ForeColor = Color.Red;
}
else
{
balance.ForeColor = Color.Black;
}
// Set the text of the balance text box
// to the newBalance value.
balance.Text = newBalance.ToString();
}
}
catch(FormatException)
{
// If a FormatException is thrown, set the
// error string to the HelpString message for
// the control.
ErrorProvider1.SetError(textBoxSender,
HelpProvider1.GetHelpString(textBoxSender));
}
}
private void CheckForDigits(object sender, KeyPressEventArgs e)
{
// If the character is not a digit, period, or backspace then
// ignore it by setting the KeyPressEventArgs.Handled
// property to true.
if (!(Char.IsDigit(e.KeyChar) || e.KeyChar == '.' ||
e.KeyChar == (char)(Keys.Back)))
{
e.Handled = true;
}
}
public static void Main()
{
Application.Run(new Form1());
}
}
Imports System.Drawing
Imports System.Windows.Forms
Public Class Form1
Inherits System.Windows.Forms.Form
Public Sub New()
MyBase.New()
InitializeComponent()
AddHandlers()
InitializeFormHelp()
End Sub
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents Label2 As System.Windows.Forms.Label
Friend WithEvents Label3 As System.Windows.Forms.Label
Friend WithEvents withdrawal As System.Windows.Forms.TextBox
Friend WithEvents deposit As System.Windows.Forms.TextBox
Friend WithEvents ErrorProvider1 As System.Windows.Forms.ErrorProvider
Friend WithEvents balance As System.Windows.Forms.Label
Friend WithEvents HelpProvider1 As System.Windows.Forms.HelpProvider
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.withdrawal = New System.Windows.Forms.TextBox
Me.deposit = New System.Windows.Forms.TextBox
Me.Label1 = New System.Windows.Forms.Label
Me.Label2 = New System.Windows.Forms.Label
Me.Label3 = New System.Windows.Forms.Label
Me.ErrorProvider1 = New System.Windows.Forms.ErrorProvider
Me.balance = New System.Windows.Forms.Label
Me.HelpProvider1 = New System.Windows.Forms.HelpProvider
Me.SuspendLayout()
Me.withdrawal.Location = New System.Drawing.Point(32, 200)
Me.withdrawal.Name = "withdrawal"
Me.withdrawal.Size = New System.Drawing.Size(88, 20)
Me.withdrawal.TabIndex = 0
Me.withdrawal.Text = ""
Me.deposit.Location = New System.Drawing.Point(168, 200)
Me.deposit.Name = "deposit"
Me.deposit.TabIndex = 1
Me.deposit.Text = ""
Me.Label1.Location = New System.Drawing.Point(56, 88)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(96, 24)
Me.Label1.TabIndex = 2
Me.Label1.Text = "Account Balance:"
Me.Label2.Location = New System.Drawing.Point(168, 168)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(96, 24)
Me.Label2.TabIndex = 4
Me.Label2.Text = "Deposit:"
Me.Label3.Location = New System.Drawing.Point(32, 168)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(96, 24)
Me.Label3.TabIndex = 5
Me.Label3.Text = "Withdrawal:"
Me.ErrorProvider1.ContainerControl = Me
Me.balance.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
Me.balance.Location = New System.Drawing.Point(152, 88)
Me.balance.Name = "balance"
Me.balance.TabIndex = 6
Me.balance.Text = "345.65"
Me.balance.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
Me.ClientSize = New System.Drawing.Size(292, 266)
Me.Controls.Add(Me.balance)
Me.Controls.Add(Me.Label3)
Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.deposit)
Me.Controls.Add(Me.withdrawal)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)
End Sub
Private Sub AddHandlers()
'Add the event-handler delegates to handle the KeyDown events.
AddHandler deposit.KeyDown, _
New KeyEventHandler(AddressOf ProcessEntry)
AddHandler withdrawal.KeyDown, _
New KeyEventHandler(AddressOf ProcessEntry)
'Add the event-handler delegates to handled the KeyPress events.
AddHandler deposit.KeyPress, _
New KeyPressEventHandler(AddressOf CheckForDigits)
AddHandler withdrawal.KeyPress, _
New KeyPressEventHandler(AddressOf CheckForDigits)
End Sub
Private Sub InitializeFormHelp()
' Set the form's border to the FixedDialog style.
Me.FormBorderStyle = FormBorderStyle.FixedDialog
' Remove the Maximize and Minimize buttons from the form.
Me.MaximizeBox = False
Me.MinimizeBox = False
' Add the Help button to the form.
Me.HelpButton = True
' Set the Help string for the deposit textBox.
HelpProvider1.SetHelpString(deposit, _
"Enter an amount in the format xxx.xx" _
& "and press Enter to deposit.")
' Set the Help string for the withdrawal textBox.
HelpProvider1.SetHelpString(withdrawal, _
"Enter an amount in the format xxx.xx" _
& "and press Enter to withdraw.")
End Sub
Private Sub ProcessEntry(ByVal sender As Object, _
ByVal e As KeyEventArgs)
' Cast the sender back to a TextBox.
Dim textBoxSender As Control = CType(sender, TextBox)
' Set the error description to an empty string ().
ErrorProvider1.SetError(textBoxSender, "")
' Declare the variable to hold the new balance.
Dim newBalance As Double
' Wrap the code in a Try/Catch block to catch
' errors that can occur when converting the string
' to a double.
Try
If (e.KeyCode = Keys.Enter) Then
' Switch on the text box that received
' the KeyPress event. Convert the text to type double,
' and compute the new balance.
Select Case textBoxSender.Name
Case "withdrawal"
newBalance = Double.Parse(balance.Text) _
- Double.Parse(withdrawal.Text)
withdrawal.Text = ""
Case "deposit"
newBalance = Double.Parse(balance.Text) _
+ Double.Parse(deposit.Text)
deposit.Text = ""
End Select
' Check the value of new balance and set the
' Forecolor property accordingly.
If (newBalance < 0) Then
balance.ForeColor = Color.Red
Else
balance.ForeColor = Color.Black
End If
' Set the text of the balance text box
' to the newBalance value.
balance.Text = newBalance.ToString
End If
Catch ex As FormatException
' If a FormatException is thrown, set the
' error string to the HelpString message for
' the control.
ErrorProvider1.SetError(textBoxSender, _
HelpProvider1.GetHelpString(textBoxSender))
End Try
End Sub
Private Sub CheckForDigits(ByVal sender As Object, ByVal e _
As KeyPressEventArgs)
' If the character is not a digit, period, or backspace then
' ignore it by setting the KeyPressEventArgs.Handled
' property to true.
If Not (Char.IsDigit(e.KeyChar) _
Or e.KeyChar = "." Or e.KeyChar = ChrW(Keys.Back)) Then
e.Handled = True
End If
End Sub
Public Shared Sub Main()
Application.Run(New Form1)
End Sub
End Class
설명
런타임에 이 도움말 문자열을 표시하려면 지정된 컨트롤에 입력 포커스가 있는 동안 사용자가 F1 키를 누릅니다.