帮助举办活动

时间:2010-08-10 05:42:11

标签: vb.net

我有多个文本框,我希望他们在点击它们时执行相同的操作。默认情况下,我可以使用句柄textbox1.click为1单个文本框,如下所示,但我不知道如何处理它们的倍数。当然,我可以为每个文本框编写一个处理程序,但我有大约50个文本框。我相信必须有一种更有效的方式。请指教。感谢。

   Sub TextBox1_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Click

    If Button9.Text = "Make Changes" Then

        If TextBox2.Text <> "" Then

            Frm_Cine1.Show()
            Frm_Cine1.chooseCine(ComboBox1.SelectedItem)            
        Else
            MsgBox("Please check input!")
            Exit Sub
        End If
    End If
End Sub

4 个答案:

答案 0 :(得分:1)

If Button9.Text = "Make Changes" Then 

        If TextBox2.Text <> "" Then

对于所有这50个按钮,这两行是否相同?

如果是,那么我认为你可以为每个按钮的点击事件分配相同的事件处理程序。

其他方法是,创建一个私有方法,它接受一个字符串作为参数,并根据您的字符串是否为空而返回布尔值,并从所有50个按钮的单击事件中调用此方法。

答案 1 :(得分:1)

为什么不创建可自定义的文本框?

答案 2 :(得分:1)

如果确实需要为多个测试框使用相同的单击处理程序,则可以使用AddHandler命令将每个测试框的单击事件与处理程序例程相关联,如下所示:

AddHandler TextBoxX.Click AddressOf TextBox1_Click

对于要处理的每个文本框,您需要将此语句添加到程序中(可能在表单加载例程中)。 (使用每个文本框的名称代替上面代码中的“TextBoxX”。)

答案 3 :(得分:1)

感谢你的所有建议,我不确定这是你们的建议,但显然我希望它能起作用:

    Sub TextBoxs_click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles TextBox2.Click, TextBox3.Click, TextBox4.Click 'This part is disturbing if I have 50 textboxes...

            'For Each obj As Control In Panel2.Controls
            If sender.GetType.ToString = "System.Windows.Forms.TextBox" Then
                Dim txtbox As TextBox = sender
                textbox_verification(txtbox)
            End If
            'Next

        End Sub

        Sub textbox_verification(ByVal txtbox As TextBox)

            If Button9.Text = "Make Changes" Then

                If txtbox.Text <> "" Then

                    Frm_Cine1.Show()
                    Frm_Cine1.chooseCine(ComboBox1.SelectedItem, "FILE1-->This should be a variable")
                Else
                    MsgBox("Please check timings input!")
                    Exit Sub
                End If
            End If
        End Sub