我有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);
}
答案 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){}