C#从多个文本框中检测KeyPress事件中的textBox

时间:2016-04-02 17:59:18

标签: c#

我有5个文本框访问相同的KeyPressEvent() 如何检测哪个textBox当前键被按下?

 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);
    }

2 个答案:

答案 0 :(得分:1)

在事件签名中, object sender 是调用KeyPress事件的对象(在您的情况下为TextBox)。

答案 1 :(得分:1)

您可以使用Tag属性甚至使用x:Name并检查sender是否等于它。

例如,如果您要使用标记,则可以对TextBox es执行此操作。

<TextBox Tag="textBox1"../>

然后在您的代码中,您可以将sender投射到TextBox并检查它的标记是否等于您想要的任何内容。

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

甚至更好,检查发件人本身:

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