将事件添加到WinForms?

4

我在WinForm上有一个TextBox,我想每当有人在这个文本框内按下键时执行一些代码。我查看了事件属性菜单,看到了KeyDown事件,但不知道如何添加代码。

5个回答

15

你需要为该事件添加事件处理程序。因此在属性菜单中,双击KeyDown事件旁边的字段,Visual Studio将为您创建一个事件处理程序。它看起来像这样:

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    // enter your code here
}

你也可以在不使用“属性窗口”的情况下自己订阅事件。例如,在窗体的构造函数中:

textBox1.KeyDown += HandleTextBoxKeyDownEvent;

然后实现事件处理程序:

private void HandleTextBoxKeyDownEvent(object sender, KeyEventArgs e)
{
    // enter your code here
}

我想补充一点,Visual Studio可以以非常好的方式自动完成这个过程。只需输入"textBox1.KeyDown +=",然后按两次"Tab"键即可。 - Gad

4
这些答案将使Visual Studio生成事件,并在Designer.cs文件中绑定它。
如果您想自己绑定事件,可以像这样操作。
MyTextBox.KeyDown += new KeyEventHandler(MyKeyDownFunction)

private function MyKeyDownFunction(object sender, KeyEventArgs e) {
    // your code
}

如果按照这种方式完成,new KeyEventHandler() 部分是可选的。您还可以使用lambda表达式来避免样板代码。
MyTextBox.KeyDown += (s, e) => {
    // s is the sender object, e is the args
}

2
那个lambda变量很棒。 - Matthew Fotzler

1

双击旁边的文本框。


1

我假设你正在使用Visual Studio。一种方法是双击KeyDown事件右侧的空文本框:VS将为您生成代码。


0

你需要为事件添加一个处理程序

在文本框的属性窗口中双击KeyPress事件,让Visual Studio在代码文件中生成一个事件处理程序。
然后你可以在事件处理函数中放置任何你想要的代码。你可以通过编写e.KeyCode来检查按下了哪个键。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接