Control.LostFocus Zdarzenie

Definicja

Występuje, gdy kontrolka traci fokus.

C#
[System.ComponentModel.Browsable(false)]
public event EventHandler LostFocus;
C#
[System.ComponentModel.Browsable(false)]
public event EventHandler? LostFocus;

Typ zdarzenia

Atrybuty

Przykłady

W poniższym przykładzie kodu pokazano sprawdzanie poprawności tekstu dla textBox1. Demonstruje również obsługę LostFocus zdarzenia, ustawiając FileDialog.InitialDirectory właściwość na tekst w polu TextBox1. W przykładzie kodu użyto ErrorProvider.GetError metody w celu sprawdzenia błędu przed otwarciem okna dialogowego pliku. Aby uruchomić ten przykład, wklej następujący kod w formularzu zawierającym nazwę , o nazwie OpenFileDialog1, Button nazwie Button1i ErrorProvider nazwie ErrorProvider1.OpenFileDialogTextBox1TextBox Upewnij się, że wszystkie zdarzenia są skojarzone z ich procedurami obsługi zdarzeń.

C#
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();
    }
}

Uwagi

Po zmianie fokusu za pomocą klawiatury (TAB, SHIFT+TAB itd.), wywołując Select metody lub SelectNextControl ustawiając ContainerControl.ActiveControl właściwość na bieżący formularz, zdarzenia fokusu występują w następującej kolejności:

  1. Enter

  2. GotFocus

  3. Leave

  4. Validating

  5. Validated

  6. LostFocus

W przypadku zmiany fokusu przy użyciu myszy lub wywołania Focus metody zdarzenia fokusu są wykonywane w następującej kolejności:

  1. Enter

  2. GotFocus

  3. LostFocus

  4. Leave

  5. Validating

  6. Validated

Jeśli właściwość jest ustawiona CausesValidation na false, zdarzenia Validating i Validated są pomijane.

Cancel Jeśli właściwość obiektu CancelEventArgs jest ustawiona na true w delegatu Validating zdarzenia, wszystkie zdarzenia, które zwykle występują po wystąpieniu Validating zdarzenia są pomijane.

Uwaga

Zdarzenia GotFocus i LostFocus to zdarzenia fokusu niskiego poziomu, które są powiązane z komunikatami WM_KILLFOCUS i WM_SETFOCUS systemu Windows. GotFocus Zazwyczaj zdarzenia i LostFocus są używane tylko podczas aktualizowania UICues lub zapisywania kontrolek niestandardowych. Enter Zamiast tego zdarzenia i Leave powinny być używane dla wszystkich kontrolek z wyjątkiem Form klasy , która używa zdarzeń Activated i Deactivate . Aby uzyskać więcej informacji na temat zdarzeń GotFocus i LostFocus , zobacz tematy dotyczące WM_KILLFOCUS i WM_KILLFOCUS .

Przestroga

Nie należy próbować ustawiać fokusu Enterz poziomu programów obsługi zdarzeń , GotFocus, LeaveLostFocus, , Validatinglub Validated . Może to spowodować, że aplikacja lub system operacyjny przestaną odpowiadać. Aby uzyskać więcej informacji, zobacz temat WM_KILLFOCUS .

Aby uzyskać więcej informacji na temat obsługi zdarzeń, zobacz Obsługa i podnoszenie zdarzeń.

Dotyczy

Produkt Wersje
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Zobacz też