当前位置:  开发笔记 > 编程语言 > 正文

如何将窗体上的所有文本框控件与相同的事件处理程序关联

如何解决《如何将窗体上的所有文本框控件与相同的事件处理程序关联》经验,为你挑选了1个好方法。

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

非常感谢!太棒了.



1> MusiGenesis..:

在表单的加载事件中执行类似的操作(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
}

它没有正确的递归(例如,它不会在面板上找到文本框),但你明白了.


在VB.NET中,对事件+ =的等效是使用AddHandler
推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有