Číst v angličtině

Sdílet prostřednictvím


Control.Validating Událost

Definice

Vyvolá se při ověřování ovládacího prvku.

public event System.ComponentModel.CancelEventHandler Validating;
public event System.ComponentModel.CancelEventHandler? Validating;

Event Type

Příklady

Následující příklad kódu používá odvozenou třídu TextBox a ověří e-mailovou adresu, kterou uživatel zadá. Pokud e-mailová adresa není ve standardním formátu (obsahuje @a .), ověření se nezdaří, ErrorProvider zobrazí se ikona a událost se zruší. Tento příklad vyžaduje vytvoření TextBox ovládacího prvku a ErrorProvider ve formuláři.

private void textBox1_Validating(object sender, 
                System.ComponentModel.CancelEventArgs e)
{
   string errorMsg;
   if(!ValidEmailAddress(textBox1.Text, out errorMsg))
   {
      // Cancel the event and select the text to be corrected by the user.
      e.Cancel = true;
      textBox1.Select(0, textBox1.Text.Length);

      // Set the ErrorProvider error with the text to display. 
      this.errorProvider1.SetError(textBox1, errorMsg);
   }
}

private void textBox1_Validated(object sender, System.EventArgs e)
{
   // If all conditions have been met, clear the ErrorProvider of errors.
   errorProvider1.SetError(textBox1, "");
}
public bool ValidEmailAddress(string emailAddress, out string errorMessage)
{
   // Confirm that the email address string is not empty.
   if(emailAddress.Length == 0)
   {
      errorMessage = "email address is required.";
         return false;
   }

   // Confirm that there is an "@" and a "." in the email address, and in the correct order.
   if(emailAddress.IndexOf("@") > -1)
   {
      if(emailAddress.IndexOf(".", emailAddress.IndexOf("@") ) > emailAddress.IndexOf("@") )
      {
         errorMessage = "";
         return true;
      }
   }
   
   errorMessage = "email address must be valid email address format.\n" +
      "For example 'someone@example.com' ";
      return false;
}

Poznámky

Když změníte fokus pomocí klávesnice (TAB, SHIFT+TAB atd.), voláním Select metod nebo SelectNextControl nebo nastavením ContainerControl.ActiveControl vlastnosti na aktuální formulář, události fokusu proběhnou v následujícím pořadí:

  1. Enter

  2. GotFocus

  3. Leave

  4. Validating

  5. Validated

  6. LostFocus

Když změníte fokus pomocí myši nebo voláním Focus metody, události fokusu proběhnou v následujícím pořadí:

  1. Enter

  2. GotFocus

  3. LostFocus

  4. Leave

  5. Validating

  6. Validated

Pokud je vlastnost nastavená CausesValidation na false, Validating jsou události a Validated potlačeny.

Cancel Pokud je vlastnost CancelEventArgs v delegátu Validating události nastavena na hodnotu true , jsou potlačeny všechny události, které by obvykle nastaly Validating po události.

Upozornění

Nepokoušejte se nastavit fokus z obslužných Enterrutin událostí , LeaveGotFocus, , LostFocus, Validatingnebo Validated . To může způsobit, že aplikace nebo operační systém přestanou reagovat. Další informace najdete WM_KILLFOCUS v tématu v části "Referenční informace ke vstupu klávesnice" a v části "Zablokování zpráv" v článku O zprávách a frontách zpráv .

Další informace o zpracování událostí najdete v tématu Zpracování a vyvolávání událostí.

Platí pro

Produkt Verze
.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

Viz také