Control.Validating Evento
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Si verifica durante la convalida del controllo.
public:
event System::ComponentModel::CancelEventHandler ^ Validating;
public event System.ComponentModel.CancelEventHandler Validating;
public event System.ComponentModel.CancelEventHandler? Validating;
member this.Validating : System.ComponentModel.CancelEventHandler
Public Custom Event Validating As CancelEventHandler
Tipo evento
Esempio
Nell'esempio di codice seguente viene usata la classe TextBox derivata e viene convalidato un indirizzo di posta elettronica immesso dall'utente. Se l'indirizzo di posta elettronica non è nel formato standard (contenente "@" e "."), la convalida ha esito negativo, viene visualizzata un'icona ErrorProvider e l'evento viene annullato. In questo esempio è necessario che un TextBox controllo e ErrorProvider sia stato creato in un modulo.
private:
void textBox1_Validating( Object^ sender, System::ComponentModel::CancelEventArgs^ e )
{
String^ errorMsg;
if ( !ValidEmailAddress( textBox1->Text, &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 );
}
}
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]interior_ptr<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;
}
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;
}
Private Function ValidEmailAddress(ByVal emailAddress As String, ByRef errorMessage As String) As Boolean
' Confirm there is text in the control.
If textBox1.Text.Length = 0 Then
errorMessage = "Email address is required."
Return False
End If
' Confirm that there is an "@" and a "." in the email address, and in the correct order.
If emailAddress.IndexOf("@") > -1 Then
If (emailAddress.IndexOf(".", emailAddress.IndexOf("@")) > emailAddress.IndexOf("@")) Then
errorMessage = ""
Return True
End If
End If
errorMessage = "Email address must be valid email address format." + ControlChars.Cr + _
"For example 'someone@example.com' "
Return False
End Function
Private Sub textBox1_Validating(ByVal sender As Object, _
ByVal e As System.ComponentModel.CancelEventArgs) Handles textBox1.Validating
Dim errorMsg As String
If Not ValidEmailAddress(textBox1.Text, errorMsg) Then
' 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.
Me.errorProvider1.SetError(textBox1, errorMsg)
End If
End Sub
Private Sub textBox1_Validated(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles textBox1.Validated
' If all conditions have been met, clear the error provider of errors.
errorProvider1.SetError(textBox1, "")
End Sub
Commenti
Quando si modifica lo stato attivo usando la tastiera (TAB, MAIUSC+TAB e così via), chiamando i Select metodi o SelectNextControl impostando la ContainerControl.ActiveControl proprietà sul modulo corrente, gli eventi di stato attivo si verificano nell'ordine seguente:
Quando si modifica lo stato attivo usando il mouse o chiamando il Focus metodo, gli eventi di stato attivo si verificano nell'ordine seguente:
Se la CausesValidation proprietà è impostata su false
, gli Validating eventi e Validated vengono eliminati.
Se la Cancel proprietà dell'oggetto CancelEventArgs è impostata su true
nel Validating delegato dell'evento, tutti gli eventi che in genere si verificano dopo l'eliminazione dell'evento Validating .
Attenzione
Non tentare di impostare lo stato attivo dall'interno di Enter, GotFocus, LostFocusLeave, , Validatingo Validated gestori eventi. In questo modo, l'applicazione o il sistema operativo non rispondono. Per altre informazioni, vedere l'argomento nella sezione "Riferimento all'input WM_KILLFOCUS
da tastiera" e la sezione "Message Deadlocks" dell'articolo Informazioni su messaggi e code di messaggi .
Per ulteriori informazioni sulla gestione degli eventi, consultare gestione e generazione di eventi.