每当其中一个文本框更改文本时,将方法挂接到各种框,有没有简单的方法?

Hook method to various boxes whenever one of the text box changes text, is there a simple way?

我想保持我的程序信息更新,所以我在这些文本更改方法中一遍又一遍地使用相同的方法

private void textBox5_TextChanged(object sender, EventArgs e)
    { //specific code for textBox5
      updatedatamethod(); }

private void textBox6_TextChanged(object sender, EventArgs e)
    { //specific code for textBox6
      updatedatamethod(); }

private void textBox7_TextChanged(object sender, EventArgs e)
    { //specific code for textBox7
      updatedatamethod(); }

private void textBox8_TextChanged(object sender, EventArgs e)
    { //specific code for textBox8
      updatedatamethod(); }

等...

我觉得这是一种非常粗糙的编程方式,因为我不是本地程序员,所以我想知道是否有技术上更简单的方法来做到这一点。

请注意,我不希望所有文本框都执行 updatedata 方法,而只是其中的一部分

编辑:使用 winforms

Edit2:一些用户将此标记为重复并发布了 link,我理解,但我不同意。我不想只做我在示例中发布的 updatedatamethod,除此之外我还想做其他特定的按钮代码。答案 link 重复,假设你想做完全相同的事情,而不是在每个项目上做任何其他事情。

最简单的方法是将单个事件处理程序附加到所有文本框的 Click 事件,例如:

textBox5.Click +=textBox_TextChanged;
textBox6.Click +=textBox_TextChanged;
textBox7.Click +=textBox_TextChanged;

在该事件处理程序中,您可以执行以下操作:

编辑:如果你想做一些与每个 TextBox 相关的特定任务,那么你可以将发件人转换为 TextBox 并将其与你的文本框进行比较。喜欢:

void textBox_TextChanged(object sender, EventArgs e)
{
    TextBox textBox = sender as TextBox;
    if (textBox == null)
    {
        return;//log or show message 
    }

    if (textBox == textBox5)
    {
        //Specific for TextBox5
    }
    if (textBox == textBox6)
    {
        //Specific for TextBox6
    }
    updatedatamethod();
}

您可以在初始化控件后在构造函数中执行此操作。