2016-04-02 13 views
0

Ich habe 5 TextBoxes, die auf die gleichen zugreifen KeyPressEvent() Wie erkenne ich von welcher TextBox derzeit Schlüssel gedrückt wird?C# Detect TextBox in KeyPress-Ereignis von mehreren TextBoxen

private void textBox_Department_KeyPress(object sender, KeyPressEventArgs e) 
    { 

     e.Handled = !(Char.IsLetter(e.KeyChar) | e.KeyChar == (char)Keys.Back | e.KeyChar==(char)Keys.Space); 
    } 
+0

den Absender als TextBox Cast und bewerten den Namen der Veranstaltung, welche Textfeld zu bestimmen, wurde aus aufgerufen: '(TextBox) sender.Name ' –

Antwort

1

Bei Unterzeichnung der object sender ist das Objekt (in Ihrem Fall TextBox), die das KeyPress-Ereignis aufruft.

1

Sie könnten die Tag Eigenschaft verwenden oder sogar x:Name verwenden und prüfen, ob sender gleich ist.

Zum Beispiel, wenn Sie Tag verwenden, könnten Sie dies zu Ihrem TextBox es tun.

<TextBox Tag="textBox1"../> 

dann in Ihrem Code können Sie sender-TextBox werfen und überprüfen, ob es der Tag, was Sie wollen gleich ist.

var textBox = (TextBox)sender; 
if(textBox.Tag == "textBox1"){} 

Oder noch besser, überprüfen Sie den Absender selbst:

var textBox = (TextBox)sender; 
if(textBox == myTextBoxNameInXName){}