2016-09-26 6 views
2

Ich möchte fragen, wenn iam Ereignis-Keydown mit dem Zählen der Länge des Textes verwendet, stimmt es nicht überein. aber wenn ich Enter oder Backspace drücke, wird es 9. gibt es eine Möglichkeit, es von 1 statt 0 zählen zu zählen.keydown Event kann keine exakte Länge bekommen

der Code verwende ich

private void textEdit1_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (this.textEdit1.Text.Length == 10) 
     { 
      textEdit2.Text = textEdit1.Text;     
      this.textEdit1.Text = ""; 

     } 
     label2.Text = textEdit1.Text.Length.ToString(); 
     label1.Text = textEdit2.Text.Length.ToString(); 
    } 

enter image description here

Antwort

5

Sie haben das gleiche in Key_Up Ereignis zu versuchen.

private void textEdit1_KeyUp(object sender, KeyEventArgs e) 
{ 
    if (this.textEdit1.Text.Length == 10) 
    { 
     textEdit2.Text = textEdit1.Text;     
     this.textEdit1.Text = ""; 

    } 
    label2.Text = textEdit1.Text.Length.ToString(); 
    label1.Text = textEdit2.Text.Length.ToString(); 
} 

Da Key_Down wie erhalten ausgeführt wird und wenn eine Taste gedrückt wird, und bevor Sie die Taste loslassen.

Und auf der anderen Seite Key_Up wird ausgeführt, nachdem Sie den Schlüssel auf einer Tastatur freigeben, so dass ein getipptes Zeichen wird in der Textbox und Sie werden das gewünschte Ergebnis erhalten Sie wollen.

+0

Ich habe andere Ereignis von previewkey down .. ist es das gleiche? Ich versuche, einige Informationen im Internet zu lesen, aber ich verstehe es nicht ruhig – chopperfield

0

Das Problem ist, dass KeyDown-Ereignis ausgelöst wird, bevor Text-Eigenschaft aktualisiert wird. Wenn Sie die Länge des Textes nach der Verarbeitung Ihres Schlüssels benötigen, müssen Sie ein anderes Ereignis abonnieren, z. Text geändert.

Verwandte Themen