Control.LostFocus イベント
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
コントロールがフォーカスを失ったときに発生します。
public:
event EventHandler ^ LostFocus;
[System.ComponentModel.Browsable(false)]
public event EventHandler LostFocus;
[System.ComponentModel.Browsable(false)]
public event EventHandler? LostFocus;
[<System.ComponentModel.Browsable(false)>]
member this.LostFocus : EventHandler
Public Custom Event LostFocus As EventHandler
イベントの種類
- 属性
例
次のコード例では、TextBox1 のテキストの検証を示します。 また、 プロパティを TextBox1 の LostFocus テキストに設定 FileDialog.InitialDirectory してイベントを処理する方法も示します。 このコード例では、 メソッドをErrorProvider.GetError使用して、ファイル ダイアログ ボックスを開く前にエラーをチェックしました。 この例を実行するには、次のコードを、名前付き 、 という名前Button1
OpenFileDialog1
ButtonTextBox1
の を含むTextBoxフォームにErrorProvider1
ErrorProvider貼り付けます。OpenFileDialog すべてのイベントがイベント ハンドラーに関連付けられていることを確認します。
private:
void TextBox1_Validating( Object^ sender,
System::ComponentModel::CancelEventArgs^ e )
{
// If nothing is entered,
// an ArgumentException is caught; if an invalid directory is entered,
// a DirectoryNotFoundException is caught. An appropriate error message
// is displayed in either case.
try
{
System::IO::DirectoryInfo^ directory = gcnew System::IO::DirectoryInfo( TextBox1->Text );
directory->GetFiles();
ErrorProvider1->SetError( TextBox1, "" );
}
catch ( System::ArgumentException^ )
{
ErrorProvider1->SetError( TextBox1, "Please enter a directory" );
}
catch ( System::IO::DirectoryNotFoundException^ )
{
ErrorProvider1->SetError( TextBox1, "The directory does not exist."
"Try again with a different directory." );
}
}
// This method handles the LostFocus event for TextBox1 by setting the
// dialog's InitialDirectory property to the text in TextBox1.
void TextBox1_LostFocus( Object^ sender, System::EventArgs^ e )
{
OpenFileDialog1->InitialDirectory = TextBox1->Text;
}
// This method demonstrates using the ErrorProvider.GetError method
// to check for an error before opening the dialog box.
void Button1_Click( System::Object^ sender, System::EventArgs^ e )
{
//If there is no error, then open the dialog box.
if ( ErrorProvider1->GetError( TextBox1 )->Equals( "" ) )
{
::DialogResult dialogResult = OpenFileDialog1->ShowDialog();
}
}
private void textBox1_Validating(object sender,
System.ComponentModel.CancelEventArgs e)
{
// If nothing is entered,
// an ArgumentException is caught; if an invalid directory is entered,
// a DirectoryNotFoundException is caught. An appropriate error message
// is displayed in either case.
try
{
System.IO.DirectoryInfo directory =
new System.IO.DirectoryInfo(textBox1.Text);
directory.GetFiles();
errorProvider1.SetError(textBox1, "");
}
catch(System.ArgumentException ex1)
{
errorProvider1.SetError(textBox1, "Please enter a directory");
}
catch(System.IO.DirectoryNotFoundException ex2)
{
errorProvider1.SetError(textBox1, "The directory does not exist." +
"Try again with a different directory.");
}
}
// This method handles the LostFocus event for textBox1 by setting the
// dialog's InitialDirectory property to the text in textBox1.
private void textBox1_LostFocus(object sender, System.EventArgs e)
{
openFileDialog1.InitialDirectory = textBox1.Text;
}
// This method demonstrates using the ErrorProvider.GetError method
// to check for an error before opening the dialog box.
private void button1_Click(System.Object sender, System.EventArgs e)
{
//If there is no error, then open the dialog box.
if (errorProvider1.GetError(textBox1)=="")
{
DialogResult dialogResult = openFileDialog1.ShowDialog();
}
}
Private Sub TextBox1_Validating(ByVal sender As Object, _
ByVal e As System.ComponentModel.CancelEventArgs) _
Handles TextBox1.Validating
' If nothing is entered,
' an ArgumentException is caught; if an invalid directory is entered,
' a DirectoryNotFoundException is caught. An appropriate error message
' is displayed in either case.
Try
Dim directory As New System.IO.DirectoryInfo(TextBox1.Text)
directory.GetFiles()
ErrorProvider1.SetError(TextBox1, "")
Catch ex1 As System.ArgumentException
ErrorProvider1.SetError(TextBox1, "Please enter a directory")
Catch ex2 As System.IO.DirectoryNotFoundException
ErrorProvider1.SetError(TextBox1, _
"The directory does not exist." & _
"Try again with a different directory.")
End Try
End Sub
' This method handles the LostFocus event for TextBox1 by setting the
' dialog's InitialDirectory property to the text in TextBox1.
Private Sub TextBox1_LostFocus(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles TextBox1.LostFocus
OpenFileDialog1.InitialDirectory = TextBox1.Text
End Sub
' This method demonstrates using the ErrorProvider.GetError method
' to check for an error before opening the dialog box.
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
'If there is no error, then open the dialog box.
If ErrorProvider1.GetError(TextBox1) = "" Then
Dim dialogResult As DialogResult = OpenFileDialog1.ShowDialog()
End If
End Sub
注釈
キーボード (TAB、Shift + TAB など) を使用してフォーカスを変更したり、 メソッドや SelectNextControl メソッドを呼び出Selectしたり、 プロパティをContainerControl.ActiveControl現在のフォームに設定したりすると、フォーカス イベントは次の順序で発生します。
マウスを使用するか、 メソッドを呼び出してフォーカスを Focus 変更すると、フォーカス イベントは次の順序で発生します。
プロパティが CausesValidation に false
設定されている場合、 Validating イベントと Validated イベントは抑制されます。
Cancelイベント デリゲートで Validating の CancelEventArgs プロパティが にtrue
設定されている場合、通常はイベントの後にValidating発生するすべてのイベントが抑制されます。
Note
GotFocusイベントと LostFocus イベントは、WM_KILLFOCUSに関連付けられた低レベルのフォーカス イベントであり、Windows メッセージWM_SETFOCUS。 通常、 GotFocus イベントと LostFocus イベントは、更新時またはカスタム コントロールの UICues 作成時にのみ使用されます。 代わりに、 および イベントはEnter、 イベントと DeactivateLeave イベントを使用する クラスをForm除くすべてのコントロールに使用するActivated必要があります。 イベントと LostFocus イベントのGotFocus詳細については、WM_KILLFOCUSとWM_KILLFOCUSのトピックを参照してください。
注意事項
、または イベント ハンドラー内EnterGotFocusLostFocusLeaveValidatingからフォーカスを設定しないでください。Validated これにより、アプリケーションまたはオペレーティング システムが応答を停止する可能性があります。 詳細については、 WM_KILLFOCUS トピックを参照してください。
イベントの処理の詳細については、「処理とイベントの発生」を参照してください。
適用対象
こちらもご覧ください
.NET