2012-04-23 11 views
6

questo:Come posso determinare se il Backspace è stato premuto nell'evento KeyPress?

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keypress.aspx

... indica che dovrei avere accesso al e.KeyCode nell'evento KeyPress, ma non mi sembra. Sto cercando di consentire solo 1,2,3 e backspace:

private void textBoxQH1_KeyPress(object sender, KeyPressEventArgs e) { 
    if ((e.KeyChar != '1') && 
     (e.KeyChar != '2') && 
     (e.KeyChar != '3') && 
     (e.KeyChar != (Keys.Back))) { 
    e.Handled = true; 
    } 
} 

... ma "e". non mostra un valore "KeyCode" come mostra l'esempio, e provando KeyChar con Keys.Back mi rimprovera, "Operator '! =' non può essere applicato agli operandi di tipo 'char' e 'System.Windows.Forms.Keys' "

Quindi, come posso realizzare questo?

+1

C# ??? canticchia, non sono sicuro ma forse: '(e.KeyChar! = (char) 8)'? –

risposta

1

Sono abbastanza sicuro di averlo mai risolto utilizzando l'evento KeyDown; ha argomenti di eventi diversi.

0

Prova a mettere una condizione come questa:

Codice:

if (e.KeyCode == (Keys.Back)) 
{ 
     if(textBox1.Text.Length >=3) 
     { 
      if (textBox1.Text.Contains("-")) 
      { 
       textBox1.Text.Replace("-", ""); 
      } 
     } 
} 
Problemi correlati