Control.LostFocus イベントとは? わかりやすく解説

Control.LostFocus イベント

コントロールにフォーカスがなくなると発生します。

名前空間: System.Windows.Forms
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)
構文構文

解説解説

キーボード (Tab、Shift + Tab など) を使用するか、Select メソッドまたは SelectNextControl メソッドを呼び出すか、ContainerControl.ActiveControl プロパティを現在のフォームに設定してフォーカスを変更するとき、次の順序でフォーカス イベントが発生します。

  1. Enter

  2. GotFocus

  3. Leave

  4. Validating

  5. Validated

  6. LostFocus

マウスを使用するか Focus メソッドを呼び出してフォーカスを変更するとき、フォーカス イベントは次の順序で発生します。

  1. Enter

  2. GotFocus

  3. LostFocus

  4. Leave

  5. Validating

  6. Validated

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
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「Control.LostFocus イベント」の関連用語




Control.LostFocus イベントのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Control.LostFocus イベントのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS