Control.LostFocus イベント
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)

Public Event LostFocus As EventHandler
public event EventHandler LostFocus
public: event EventHandler^ LostFocus { void add (EventHandler^ value); void remove (EventHandler^ value); }
/** @event */ public void add_LostFocus (EventHandler value) /** @event */ public void remove_LostFocus (EventHandler value)

キーボード (Tab、Shift + Tab など) を使用するか、Select メソッドまたは SelectNextControl メソッドを呼び出すか、ContainerControl.ActiveControl プロパティを現在のフォームに設定してフォーカスを変更するとき、次の順序でフォーカス イベントが発生します。
マウスを使用するか Focus メソッドを呼び出してフォーカスを変更するとき、フォーカス イベントは次の順序で発生します。
CausesValidation プロパティが false に設定されている場合、Validating イベントおよび Validated イベントは発生しません。
Validating イベント デリゲートで CancelEventArgs の Cancel プロパティが true に設定されると、通常は Validating イベントの後に発生するすべてのイベントが発生しなくなります。
![]() |
---|
LostFocus イベント ハンドラの中からフォーカスを設定しないでください。フォーカスを設定すると、アプリケーションやオペレーティング システムが応答を停止することがあります。LostFocus イベントの詳細については、MSDN ライブラリ (http://msdn.microsoft.com/library/ja) にあるプラットフォーム SDK ドキュメントの「Keyboard Input Reference」で WM_KILLFOCUS、および「Messages and Message Queues」で Message Deadlocks を参照してください。 |

TextBox1 のテキストを検証する方法を次のコード例に示します。また、FileDialog.InitialDirectory プロパティを TextBox1 のテキストに設定して、LostFocus イベントを処理する方法も示します。このコード例では、ErrorProvider.GetError メソッドを使用して、ファイル ダイアログ ボックスを開く前にエラーがあるかどうかを調べます。この例を実行するには、TextBox1 という名前の TextBox、OpenFileDialog1 という名前の OpenFileDialog、Button1 という名前の Button、および ErrorProvider1 という名前の ErrorProvider が配置されているフォームに次のコードを貼り付けます。必ずすべてのイベントをイベント ハンドラに関連付けるようにしてください。
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
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: 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.get_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."); } } //textBox1_Validating // 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.set_InitialDirectory(textBox1.get_Text()); } //textBox1_LostFocus // This method demonstrates using the ErrorProvider.GetError method // to check for an error before opening the dialog box. private void button1_Click(Object sender, System.EventArgs e) { //If there is no error, then open the dialog box. if (errorProvider1.GetError(textBox1).Equals("")) { DialogResult dialogResult = openFileDialog1.ShowDialog(); } } //button1_Click

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- Control.LostFocus イベントのページへのリンク