Espandi Riduci a icona
Il presente articolo è stato tradotto manualmente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale.
Traduzione
Originale
Questo argomento non è stato ancora valutato - Valuta questo argomento

Evento Control.Validating

Si verifica quando il controllo viene convalidato.

Spazio dei nomi:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)
public event CancelEventHandler Validating

Quando si modifica lo stato attivo mediante la tastiera (TAB, MAIUSC+TAB e così via), chiamando i metodi Select o SelectNextControl, oppure impostando la proprietà ContainerControl.ActiveControl sul form corrente, gli eventi di attivazione si verificano nel seguente ordine:

  1. Enter

  2. GotFocus

  3. Leave

  4. Validating

  5. Validated

  6. LostFocus

Quando si modifica lo stato attivo utilizzando il mouse o chiamando il metodo Focus, gli eventi relativi allo stato attivo si verificano nel seguente ordine:

  1. Enter

  2. GotFocus

  3. LostFocus

  4. Leave

  5. Validating

  6. Validated

Se la proprietà CausesValidation è impostata su false, gli eventi Validating e Validated sono soppressi.

Se la proprietà Cancel di CancelEventArgs è impostata su true nel delegato dell'evento Validating, tutti gli eventi che in genere si verificano dopo l'evento Validating verranno soppressi.

Nota di avvisoAttenzione

Non tentare di impostare lo stato attivo dall'interno dei gestori eventi Enter, GotFocus, Leave, LostFocus, Validating o Validated. Questa operazione può provocare il blocco dell'applicazione o del sistema operativo. Per ulteriori informazioni, vedere l'argomento WM_KILLFOCUS nella sezione di riferimento sull'input da tastiera e la sezione relativa ai deadlock dei messaggi nell'argomento sui messaggi e sulle code di messaggi in MSDN Library all'indirizzo http://msdn.microsoft.com/it-it/library/default.aspx.

Per ulteriori informazioni sulla gestione degli eventi, vedere Utilizzo degli eventi.

Nell'esempio di codice riportato di seguito viene utilizzata la classe derivata TextBox e viene convalidato un indirizzo di posta elettronica immesso dall'utente. Se l'indirizzo di posta elettronica non è nel formato standard, ovvero non contiene i simboli "@" e ".", la convalida non riesce, viene visualizzata l'icona ErrorProvider e l'evento viene annullato. Per eseguire questo esempio è necessario che siano stati creati i controlli TextBox e ErrorProvider in un form.


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 e-mail address string is not empty.
   if(emailAddress.Length == 0)
   {
      errorMessage = "e-mail address is required.";
         return false;
   }

   // Confirm that there is an "@" and a "." in the e-mail address, and in the correct order.
   if(emailAddress.IndexOf("@") > -1)
   {
      if(emailAddress.IndexOf(".", emailAddress.IndexOf("@") ) > emailAddress.IndexOf("@") )
      {
         errorMessage = "";
         return true;
      }
   }

   errorMessage = "e-mail address must be valid e-mail address format.\n" +
      "For example 'someone@example.com' ";
      return false;
}


.NET Framework

Supportato in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o versione successiva, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (componenti di base del server non supportati), Windows Server 2008 R2 (componenti di base del server supportati con SP1 o versione successiva), Windows Server 2003 SP2

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Il documento è risultato utile?
(1500 caratteri rimanenti)

Aggiunte alla community

AGGIUNGI
© 2013 Microsoft. Tutti i diritti riservati.