当我在文本框中更改文本时,C#事件不会触发

时间:2012-04-27 12:19:06

标签: c# event-handling

当用户更改文本时,不会触发TextChanged事件。我认为生成的代码可能会出错。

 private void textBox1_TextChanged(object sender, EventArgs e)
    {
      textBox2.Text = textBox1.Text;
    }

2 个答案:

答案 0 :(得分:6)

您不能只添加方法,需要打开表单,选择文本框,在属性窗口中查看“事件”选项卡,然后设置TextChanged事件的处理程序。

答案 1 :(得分:3)

简单说:通过使用属性/事件窗格并在那里创建事件,通过Visual Studio中的GUI编辑器自动连接。

上面的代码是你的事件处理函数。活动分为几个部分

  1. 事件签名 - 如何调用
  2. 处理程序功能 - 符合签名
  3. 事件挂钩
  4. 处理程序功能已添加到挂钩
  5. 事件被解雇。
  6. 活动签名

    public delegate void TextChangedEventHandler(object sender, EventArgs e);
    

    处理程序功能(您的代码)

    private void textBox1_TextChanged(object sender, EventArgs e) { textBox2.Text = textBox1.Text; }
    

    需要符合上述签名

    事件挂钩 在哪里说“我可以举起这个活动”

    public event TextChangedEventHandler TextChanged
    

    处理程序已添加到功能

    TextChanged += new TextChangedEventHandler(textBox1_TextChanged);