Control.CausesValidation-Eigenschaft
Ruft einen Wert ab, der angibt, ob das Steuerelement bei Erhalt des Fokus eine Validierung für alle eine Validierung erfordernden Steuerelemente veranlasst, oder legt diesen fest.
Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)
Syntax
'Declaration
Public Property CausesValidation As Boolean
'Usage
Dim instance As Control
Dim value As Boolean
value = instance.CausesValidation
instance.CausesValidation = value
public bool CausesValidation { get; set; }
public:
property bool CausesValidation {
bool get ();
void set (bool value);
}
/** @property */
public boolean get_CausesValidation ()
/** @property */
public void set_CausesValidation (boolean value)
public function get CausesValidation () : boolean
public function set CausesValidation (value : boolean)
Eigenschaftenwert
true, wenn das Steuerelement eine Validierung für alle eine Validierung erfordernden Steuerelemente veranlasst, wenn es den Fokus erhält, andernfalls false. Der Standardwert ist true.
Hinweise
Wenn die CausesValidation-Eigenschaft auf false festgelegt ist, wird das Validating-Ereignis und das Validated-Ereignis unterdrückt.
Der CausesValidation-Eigenschaftenwert wird für Steuerelemente, z. B. die Schaltfläche Hilfe, i. d. R. auf false festgelegt.
Beispiel
Im folgenden Codebeispiel wird ein Windows Form erstellt, das die in Textfeldern eingegebenen Zahlen hinzufügt. Die Textfelder werden vor dem Anzeigen des Ergebnisses überprüft.
Private Sub AddHandlers()
' Add the Validating and Validated handlers for textboxes.
AddHandler myTextBox1.Validating, AddressOf myTextBox1_Validating
AddHandler myTextBox1.Validated, AddressOf myTextBox1_Validated
AddHandler myTextBox2.Validating, AddressOf myTextBox2_Validating
AddHandler myTextBox2.Validated, AddressOf myTextBox2_Validated
AddHandler myTextBox1.CausesValidationChanged, AddressOf myTextBox1_CausesValidationChanged
AddHandler myTextBox2.CausesValidationChanged, AddressOf myTextBox2_CausesValidationChanged
If myTextBox1.CausesValidation = True And myTextBox2.CausesValidation = True Then
button1.Text = "Disable Validation"
myLabel.Text = "Validation Enabled"
Me.Focus()
End If
End Sub 'AddHandlers
Private Sub myTextBox1_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs)
If Not CheckIfTextBoxNumeric(myTextBox1) Then
myLabel.Text = "Has to be numeric"
e.Cancel = True
End If
End Sub 'myTextBox1_Validating
Private Sub myTextBox1_Validated(sender As Object, e As System.EventArgs)
myLabel.Text = "Validated first control"
End Sub 'myTextBox1_Validated
Private Sub myTextBox2_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs)
If Not CheckIfTextBoxNumeric(myTextBox2) Then
myLabel.Text = "Has to be numeric"
e.Cancel = True
End If
End Sub 'myTextBox2_Validating
Private Sub myTextBox2_Validated(sender As Object, e As System.EventArgs)
myLabel.Text = "Validated second control"
End Sub 'myTextBox2_Validated
Private Sub myTextBox1_CausesValidationChanged(sender As Object, e As System.EventArgs)
myLabel.Text = "CausesValidation property was changed for First Textbox"
End Sub 'myTextBox1_CausesValidationChanged
Private Sub myTextBox2_CausesValidationChanged(sender As Object, e As System.EventArgs)
myLabel.Text = "CausesValidation property was changed for Second Textbox"
End Sub 'myTextBox2_CausesValidationChanged
Private Function CheckIfTextBoxNumeric(myTextBox1 As TextBox) As Boolean
Dim isValid As Boolean = True
If myTextBox1.Text = "" Then
isValid = False
Else
Dim i As Integer
For i = 0 To myTextBox1.Text.Length - 1
If Not IsNumeric(myTextBox1.Text) Then
myTextBox1.Text = ""
isValid = False
Exit For
End If
Next i
End If
Return isValid
End Function 'CheckIfTextBoxNumeric
Private Sub myButtonAdd_Click(sender As Object, e As System.EventArgs) Handles myButtonAdd.Click
Try
Dim result As Integer = Convert.ToInt32(myTextBox1.Text) + Convert.ToInt32(myTextBox2.Text)
myLabel.Text = result.ToString()
Catch myException As Exception
myLabel.Text = "Exception : " + myException.Message
End Try
End Sub 'myButtonAdd_Click
Private Sub button1_Click(sender As Object, e As System.EventArgs) Handles button1.Click
If myTextBox1.CausesValidation = False And myTextBox2.CausesValidation = False Then
myTextBox1.CausesValidation = True
myTextBox2.CausesValidation = True
button1.Text = "Disable Validation"
myLabel.Text = "Validation Enabled"
Else
If myTextBox1.CausesValidation = True And myTextBox2.CausesValidation = True Then
myTextBox1.CausesValidation = False
myTextBox2.CausesValidation = False
button1.Text = "Enable Validation"
myLabel.Text = "Validation Disabled"
End If
End If
End Sub 'button1_Click
private void AddHandlers()
{
// Add the Validating and Validated handlers for textboxes.
myTextBox1.Validating +=
new System.ComponentModel.CancelEventHandler(myTextBox1_Validating);
myTextBox1.Validated +=
new System.EventHandler(myTextBox1_Validated);
myTextBox2.Validating +=
new System.ComponentModel.CancelEventHandler(myTextBox2_Validating);
myTextBox2.Validated +=
new System.EventHandler(myTextBox2_Validated);
myTextBox1.CausesValidationChanged +=
new System.EventHandler(myTextBox1_CausesValidationChanged);
myTextBox2.CausesValidationChanged +=
new System.EventHandler(myTextBox2_CausesValidationChanged);
if(myTextBox1.CausesValidation == true && myTextBox2.CausesValidation == true)
{
button1.Text = "Disable Validation";
myLabel.Text = "Validation Enabled";
this.Focus();
}
}
private void myTextBox1_Validating(object sender,System.ComponentModel.CancelEventArgs e)
{
if(!CheckIfTextBoxNumeric(myTextBox1))
{
myLabel.Text = "Has to be numeric";
e.Cancel = true;
}
}
private void myTextBox1_Validated(object sender,System.EventArgs e)
{
myLabel.Text = "Validated first control";
}
private void myTextBox2_Validating(object sender,System.ComponentModel.CancelEventArgs e)
{
if(!CheckIfTextBoxNumeric(myTextBox2))
{
myLabel.Text = "Has to be numeric";
e.Cancel = true;
}
}
private void myTextBox2_Validated(object sender,System.EventArgs e)
{
myLabel.Text = "Validated second control";
}
private void myTextBox1_CausesValidationChanged(object sender,System.EventArgs e)
{
myLabel.Text = "CausesValidation property was changed for First Textbox";
}
private void myTextBox2_CausesValidationChanged(object sender,System.EventArgs e)
{
myLabel.Text = "CausesValidation property was changed for Second Textbox";
}
private bool CheckIfTextBoxNumeric(TextBox myTextBox1)
{
bool isValid = true;
if(myTextBox1.Text == "")
{
isValid = false;
}
else
{
for(int i=0; i< myTextBox1.Text.Length;i++)
{
if(!(System.Char.IsNumber(myTextBox1.Text[i])))
{
myTextBox1.Text = "";
isValid = false;
break;
}
}
}
return isValid;
}
private void myButtonAdd_Click(object sender, System.EventArgs e)
{
try
{
int result = Convert.ToInt32(myTextBox1.Text) + Convert.ToInt32(myTextBox2.Text);
myLabel.Text = result.ToString();
}
catch(Exception myException)
{
myLabel.Text = "Exception : " + myException.Message;
}
}
private void button1_Click(object sender, System.EventArgs e)
{
if(myTextBox1.CausesValidation == false && myTextBox2.CausesValidation == false)
{
myTextBox1.CausesValidation = true;
myTextBox2.CausesValidation = true;
button1.Text = "Disable Validation";
myLabel.Text = "Validation Enabled";
}
else if(myTextBox1.CausesValidation == true && myTextBox2.CausesValidation == true)
{
myTextBox1.CausesValidation = false;
myTextBox2.CausesValidation = false;
button1.Text = "Enable Validation";
myLabel.Text = "Validation Disabled";
}
}
private:
void AddHandlers()
{
// Add the Validating and Validated handlers for textboxes.
myTextBox1->Validating += gcnew System::ComponentModel::CancelEventHandler( this, &Form1::myTextBox1_Validating );
myTextBox1->Validated += gcnew System::EventHandler( this, &Form1::myTextBox1_Validated );
myTextBox2->Validating += gcnew System::ComponentModel::CancelEventHandler( this, &Form1::myTextBox2_Validating );
myTextBox2->Validated += gcnew System::EventHandler( this, &Form1::myTextBox2_Validated );
myTextBox1->CausesValidationChanged += gcnew System::EventHandler( this, &Form1::myTextBox1_CausesValidationChanged );
myTextBox2->CausesValidationChanged += gcnew System::EventHandler( this, &Form1::myTextBox2_CausesValidationChanged );
if ( myTextBox1->CausesValidation == true && myTextBox2->CausesValidation == true )
{
button1->Text = "Disable Validation";
myLabel->Text = "Validation Enabled";
this->Focus();
}
}
void myTextBox1_Validating( Object^ /*sender*/, System::ComponentModel::CancelEventArgs^ e )
{
if ( !CheckIfTextBoxNumeric( myTextBox1 ) )
{
myLabel->Text = "Has to be numeric";
e->Cancel = true;
}
}
void myTextBox1_Validated( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
myLabel->Text = "Validated first control";
}
void myTextBox2_Validating( Object^ /*sender*/, System::ComponentModel::CancelEventArgs^ e )
{
if ( !CheckIfTextBoxNumeric( myTextBox2 ) )
{
myLabel->Text = "Has to be numeric";
e->Cancel = true;
}
}
void myTextBox2_Validated( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
myLabel->Text = "Validated second control";
}
void myTextBox1_CausesValidationChanged( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
myLabel->Text = "CausesValidation property was changed for First Textbox";
}
void myTextBox2_CausesValidationChanged( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
myLabel->Text = "CausesValidation property was changed for Second Textbox";
}
bool CheckIfTextBoxNumeric( TextBox^ myTextBox1 )
{
bool isValid = true;
if ( myTextBox1->Text->Equals( "" ) )
{
isValid = false;
}
else
{
for ( int i = 0; i < myTextBox1->Text->Length; i++ )
{
if ( !(System::Char::IsNumber( myTextBox1->Text[ i ] )) )
{
myTextBox1->Text = "";
isValid = false;
break;
}
}
}
return isValid;
}
void myButtonAdd_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
try
{
int result = Convert::ToInt32( myTextBox1->Text ) + Convert::ToInt32( myTextBox2->Text );
myLabel->Text = result.ToString();
}
catch ( Exception^ myException )
{
myLabel->Text = "Exception : ",myException->Message;
}
}
void button1_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
if ( myTextBox1->CausesValidation == false && myTextBox2->CausesValidation == false )
{
myTextBox1->CausesValidation = true;
myTextBox2->CausesValidation = true;
button1->Text = "Disable Validation";
myLabel->Text = "Validation Enabled";
}
else
if ( myTextBox1->CausesValidation == true && myTextBox2->CausesValidation == true )
{
myTextBox1->CausesValidation = false;
myTextBox2->CausesValidation = false;
button1->Text = "Enable Validation";
myLabel->Text = "Validation Disabled";
}
}
private void AddHandlers()
{
// Add the Validating and Validated handlers for textboxes.
myTextBox1.add_Validating(new System.ComponentModel.
CancelEventHandler(myTextBox1_Validating));
myTextBox1.add_Validated(new System.EventHandler(myTextBox1_Validated));
myTextBox2.add_Validating(new System.ComponentModel.
CancelEventHandler(myTextBox2_Validating));
myTextBox2.add_Validated(new System.EventHandler(myTextBox2_Validated));
myTextBox1.add_CausesValidationChanged(new System.
EventHandler(myTextBox1_CausesValidationChanged));
myTextBox2.add_CausesValidationChanged(new System.
EventHandler(myTextBox2_CausesValidationChanged));
if (myTextBox1.get_CausesValidation() == true && myTextBox2.
get_CausesValidation() == true) {
button1.set_Text("Disable Validation");
myLabel.set_Text("Validation Enabled");
this.Focus();
}
} //AddHandlers
private void myTextBox1_Validating(Object sender,
System.ComponentModel.CancelEventArgs e)
{
if (!(CheckIfTextBoxNumeric(myTextBox1))) {
myLabel.set_Text("Has to be numeric");
e.set_Cancel(true);
}
} //myTextBox1_Validating
private void myTextBox1_Validated(Object sender,
System.EventArgs e)
{
myLabel.set_Text("Validated first control");
} //myTextBox1_Validated
private void myTextBox2_Validating(Object sender,
System.ComponentModel.CancelEventArgs e)
{
if (!(CheckIfTextBoxNumeric(myTextBox2))) {
myLabel.set_Text("Has to be numeric");
e.set_Cancel(true);
}
} //myTextBox2_Validating
private void myTextBox2_Validated(Object sender, System.EventArgs e)
{
myLabel.set_Text("Validated second control");
} //myTextBox2_Validated
private void myTextBox1_CausesValidationChanged(Object sender,
System.EventArgs e)
{
myLabel.set_Text("CausesValidation property was changed for "
+ "First Textbox");
} //myTextBox1_CausesValidationChanged
private void myTextBox2_CausesValidationChanged(Object sender,
System.EventArgs e)
{
myLabel.set_Text("CausesValidation property was changed for "
+ "Second Textbox");
} //myTextBox2_CausesValidationChanged
private boolean CheckIfTextBoxNumeric(TextBox myTextBox1)
{
boolean isValid = true;
if (myTextBox1.get_Text().Equals("")) {
isValid = false;
}
else {
for (int i = 0; i < myTextBox1.get_Text().get_Length(); i++) {
if (!(System.Char.IsNumber(myTextBox1.get_Text().
get_Chars(i)))) {
myTextBox1.set_Text("");
isValid = false;
break;
}
}
}
return isValid;
} //CheckIfTextBoxNumeric
private void myButtonAdd_Click(Object sender, System.EventArgs e)
{
try {
int result = Convert.ToInt32(myTextBox1.get_Text())
+ Convert.ToInt32(myTextBox2.get_Text());
myLabel.set_Text(System.Convert.ToString(result));
}
catch (System.Exception myException) {
myLabel.set_Text("Exception : " + myException.get_Message());
}
} //myButtonAdd_Click
private void button1_Click(Object sender, System.EventArgs e)
{
if (myTextBox1.get_CausesValidation() == false && myTextBox2.
get_CausesValidation() == false) {
myTextBox1.set_CausesValidation(true);
myTextBox2.set_CausesValidation(true);
button1.set_Text("Disable Validation");
myLabel.set_Text("Validation Enabled");
}
else {
if (myTextBox1.get_CausesValidation() == true && myTextBox2.
get_CausesValidation() == true) {
myTextBox1.set_CausesValidation(false);
myTextBox2.set_CausesValidation(false);
button1.set_Text("Enable Validation");
myLabel.set_Text("Validation Disabled");
}
}
} //button1_Click
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
Control-Klasse
Control-Member
System.Windows.Forms-Namespace
Validating
Validated