VB 2008.
我在表单上有几个文本框,我希望每个文本框都使用相同的事件处理程序.我知道如何手动将每一个连接到处理程序,但我正在寻找一种更通用的方式,所以如果我添加更多文本框,它们将自动连接到事件处理程序.
想法?
编辑:使用MusiGenesis的C#样本(以及在nick留下的评论的帮助下),我写了这个VB代码:
Private Sub AssociateTextboxEventHandler()
For Each c As Control In Me.Controls
If TypeOf c Is TextBox Then
AddHandler c.TextChanged, AddressOf tb_TextChanged
End If
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
非常感谢!太棒了.
Mus*_*sis 10
在表单的加载事件中执行类似的操作(C#,抱歉,但很容易翻译):
private void Form1_Load(object sender, EventArgs e)
{
foreach (Control ctrl in this.Controls)
{
if (ctrl is TextBox)
{
TextBox tb = (TextBox)ctrl;
tb.TextChanged += new EventHandler(tb_TextChanged);
}
}
}
void tb_TextChanged(object sender, EventArgs e)
{
TextBox tb = (TextBox)sender;
tb.Tag = "CHANGED"; // or whatever
}
Run Code Online (Sandbox Code Playgroud)
它没有正确的递归(例如,它不会在面板上找到文本框),但你明白了.
| 归档时间: |
|
| 查看次数: |
11216 次 |
| 最近记录: |