每当其中一个文本框更改文本时,将方法挂接到各种框,有没有简单的方法?
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();
}
您可以在初始化控件后在构造函数中执行此操作。
我想保持我的程序信息更新,所以我在这些文本更改方法中一遍又一遍地使用相同的方法
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();
}
您可以在初始化控件后在构造函数中执行此操作。