KeyDown事件以形式传递文本框并检测输入

时间:2014-04-10 10:05:02

标签: c# events visual-studio-2012 keydown keyevent

我想在我的表单中的每个文本框中添加一个KeyDown事件,这实际上是有效的,但是如何在我的事件中检测到密钥?

这是为每个文本框创建它的代码

for (int i = 0; i < 5; i++)
{
    foreach (Control control in tabControl_1.TabPages[i].Controls)
    {
        if (control.GetType() == typeof(TextBox))
        {
            control.KeyDown += new KeyEventHandler(this.TextBoxes_Enter);
        }
    }
}

private void TextBoxes_Enter(object sender, EventArgs e)
{
   ((TextBox)sender).KeyDown = ?
}

如果我有一个文本框,我会知道如何做到这一点,但我如何检测密钥输入foreach一个?

这是为了一个:

if(e.KeyCode == Keys.Enter)
{

}

1 个答案:

答案 0 :(得分:1)

对于您的TextBoxes_Enter方法将分配多少处理程序并不重要 - 它们对于每个处理程序的行为方式都完全相同。如果它不起作用,则意味着您正在谈论两种不同的方法。我差点错过了你的事实:

private void TextBoxes_Enter(object sender, EventArgs e)

应该是

private void TextBoxes_Enter(object sender, KeyEventArgs e)
顺便说一下,你可以像这样分配它们:

control.KeyDown += TextBoxes_Enter;