在dymanic表单上创建动态按钮

时间:2017-10-13 07:25:23

标签: vb.net dynamic controls

我正在运行时创建表单,文本框和按钮,并且在尝试为按钮的单击事件添加事件处理程序时遇到问题(下面的代码)。我认为内联函数可能是要走的路,但是我没有用过这些很多东西,看看用C#编写的例子但是没能把它转换成vb.net,可能这不是通往走了。

至于我采用这种方法的原因只是为了学习如何做到这一点,我可以创建一个Windows窗体并按照这种方式进行,但尝试新的东西总是好的。愿意接受对我的代码的批评,但是请一如既往地使这个有建设性。

        Dim CommandButton As New Button
        With CommandButton
            .Text = "Submit"
            .Name = "btnComments"
            .Location = New Point(232, 110)
            .Font = New Font("Tahoma", 12)
            .Size = New System.Drawing.Size(130, 32)
        End With

        Dim TextBox As New TextBox
        With TextBox
            .Name = "CommentsText"
            .Location = New Point(20, 20)
            .Size = New System.Drawing.Size(342, 80)
            .Multiline = True
            .BackColor = Color.Snow
        End With

        Dim CommentsForm As New Windows.Forms.Form
        With CommentsForm
            .StartPosition = FormStartPosition.CenterParent
            .Height = 195
            .Width = 400
            .Text = "Enter despatch comments for " & Me.ReferenceValue
            .Controls.Add(TextBox)
            .Controls.Add(CommandButton)
            .MaximizeBox = False
            .MinimizeBox = False
            .FormBorderStyle = FormBorderStyle.FixedDialog
            .ShowDialog()
        End With

2 个答案:

答案 0 :(得分:0)

要动态地向控件添加处理程序,请使用AddHandler yourControlName.eventToHandle, AddressOf handlingMethod

答案 1 :(得分:0)

您可以使用AddHandler为任何事件添加处理程序。

例如,这可能是:

AddHandler theButton.Click,AddressOf Me.theButton_Click