2012-04-05 6 views
2

Ich benutze Textbox_Validating-Ereignis, um eine Textbox auf einem meiner Fenster Formular zu validieren. Ich wollte die Textbox validieren, wenn sich der Text der Texbox ändert. Also habe ich das Validierungsereignis vom textbox_Texchanged-Ereignis aufgerufen. Aber es hat eine Nebenwirkung, sobald ich eine Taste drücke, löst es das textchanged-Ereignis und damit das text_Validating-Ereignis aus. Ich möchte den Aufruf von Text_Validating blockieren, wenn sich die Texteigenschaft aufgrund von Tastendruck geändert hat. Aber wenn jemand sich beklagt txtbox.Text="asdf";, möchte ich in diesem Fall Validierungsereignis auslösen.validieren Sie eine Textbox auf Text geändert, aber nicht auf Tastendruck

private void txt8Ydere1_TextChanged(object sender, EventArgs e) 
    { 
     txt8Ydere1_Validating(sender,null); 
    } 
+1

Warum nicht das LostFocus-Ereignis in der Textbox verwenden, um die Validierungsmethode aufzurufen? – ImGreg

+0

@ImGreg, ich denke, es sollte funktionieren –

Antwort

0

Ich würde das LostFocus-Ereignis für das Textfeld verwenden. Sie können Ihre Validierung von diesem Ereignis aus ausführen.

Weitere Informationen finden Sie unter msdn.

1

können Sie den Anruf blockieren Ereignis Validierung von diesem

txt8Ydere1.Validating-=txt8Ydere1_Validating; 

Platz machen diesen Code in keydown, keyUp Veranstaltungen ...

prüfen txtbox.Text equals "asdf" und wenn ja, können Sie rufen Sie die Validierungsmethode direkt auf, ohne das Ereignis erneut zu registrieren:

txt8Ydere1_Validating(sender,null); 
+0

Aber wenn ich txt8Ydere1_Validating aufrufen (Absender, Null); Im TextChanged-Ereignis wird das Keydown-Ereignis dazu führen, dass der Text geändert wird und gleichzeitig txt8Ydere1_Validating (sender, null) aufgerufen wird –