2016-04-16 4 views
0

Ich habe dieses Textfeld mit einem KeyPressEventArgs.Warum ist textbox.Text leer, obwohl ein Wert eingegeben wurde?

In einem Dialog kann ich den Wert in das Textfeld über den keychar eingegeben, aber nicht über das Textfeld.Text Mitglied. Sobald ein zweites Zeichen eingegeben wird, zeigt das Textfeld.Text-Element nur ein Zeichen an, das erste usw. Es wird also grundsätzlich das letzte Zeichen nicht angezeigt. Hier

ist der Code:

private void textBoxDegrees_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     if (e.KeyChar >= '0' && e.KeyChar <= '9' || e.KeyChar == (char)Keys.Back) //The character represents a backspace 
     { 

      e.Handled = false; //Do not reject the input 
     } 
     else 
     { 
      e.Handled = true; //Reject the input 
      return; 
     } 
     MessageBox.Show(e.KeyChar.ToString()); 
     MessageBox.Show(textBoxDegrees.Text); 
    } 

Jede Idee, was los ist?

Grüße Crouz

Antwort

3

KeyPress geschieht, bevor die Text Eigenschaft geändert wird, so dass Sie es filtern. Vielleicht möchten Sie das Changed Ereignis.

+0

Oder KeyUp-Ereignis. –

0
MessageBox.Show(textBoxDegrees.Text); 

Dies zeigt Ihren Text in der Eingabe, bevor Sie den neuen Wert eingeben. Wenn es 1234 enthält und Sie 5 drücken, wird 1234 angezeigt.

Sie können den Ereignishandler TextChanged verwenden. Es wird automatisch generiert, wenn Sie auf die Eingabe doppelklicken.

Verwandte Themen