如何在winform上获取textchanged的输入

时间:2014-01-13 20:00:48

标签: winforms

我想等待winform上的用户输入。不使用文本框或其他控件。只是它自己处理输入的形式。 我尝试将KeyPress和TextChanged事件添加到表单中,两者都没有成功。我做错了什么?

谢谢:)

2 个答案:

答案 0 :(得分:1)

根据你的评论,听起来你问为什么双击一个控件来创建一个事件处理程序,但输入完全相同的方法签名却不行。原因是设计人员生成了.Designer.cs文件中的代码。如果你查看那里,你会发现(最终 - 为表单生成了很多代码......)一行将按钮引发的实际事件链接到它生成的处理程序方法;像这样的东西:

button1.Click += button1_Clicked;

当您在Form1.cs文件中直接手动键入button1_Clicked(object sender, EventArgs e)的签名时,这是不会发生的魔力。

但我也可能完全误读你的意见/问题。

答案 1 :(得分:0)

如果您想在Form上执行键盘输入:

  • Form.KeyPress - 事件
  • 创建事件处理程序
  • 设置属性KeyPreview = true(例如通过设计器)
  • 然后在按键之前确保Form已集中注意力

Keyboard input on the Form level

关于TextChanged事件:

来自MSDN:

  

如果通过a更改Text属性,则会引发此事件   程序化修改或用户交互。

因此,当TextChanged属性被更改时,必须至少在表单初始化时引发.Text事件。当然,每当您将此属性更改为:_myForm.Text = "my new form"
在你的情况下TextChanged事件没有引发,因为(我假设)在调用InitializeComponent()方法后添加了事件处理程序。其中(C#)this.Text = "MyForm"被称为

TextChanged Event