Ich habe ein benutzerdefiniertes Textfeld gestern mit seinem eigenen Validator:Was verursacht die Validierung meiner Textbox?
public partial class CustomTextBox : TextBox
{
ErrorProvider errorProvider;
public CustomTextBox()
{
InitializeComponent();
errorProvider = new ErrorProvider();
errorProvider.DataSource = this;
}
protected override void OnValidating(CancelEventArgs e)
{
base.OnValidating(e);
if (this.Text.Trim() == "")
{
errorProvider.SetError(this, "Required field");
e.Cancel = true;
return;
}
errorProvider.SetError(this, "");
}
}
Also habe ich dies auf einem Formular mit einer Schaltfläche Abbrechen und setze Causes auf false auf der Schaltfläche Abbrechen. Ich setze causesValidation auf dem Formular auch auf false. Aus irgendeinem Grund, wenn ich auf Abbrechen klicke, feuert meine customtextbox immer noch das onValidating-Ereignis. Irgendwelche Ideen, was das verursacht? Ich möchte meine Textfelder nicht validieren lassen, bis ich auf einen Absenden-Button klicke, der versucht, alle Steuerelemente auf dem Formular zu validieren. Auf diese Weise wird ein Benutzer nicht gezwungen, Daten in das Steuerelement einzugeben, bevor er zu einem anderen übergeht. Ton vernünftig? Dies ist mein erster Riss in einer Winforms UI.