【问题标题】:Creating a dynamic button on a dymanic form在动态表单上创建动态按钮
【发布时间】:2018-03-25 06:39:20
【问题描述】:

我正在运行时创建表单、文本框和按钮,但在尝试为按钮的单击事件添加事件处理程序时遇到问题(代码如下)。我认为内联函数可能是要走的路,但是我没有大量使用这些,并且查看了用 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

【问题讨论】:

标签: vb.net dynamic controls


【解决方案1】:

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

【讨论】:

  • 你又错过了重点。该表单不存在,因此没有可以使用 AddressOf 引用的事件。控件和表单都是动态的。
【解决方案2】:

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

例如,这可能是:

AddHandler theButton.Click, AddressOf Me.theButton_Click

【讨论】:

    猜你喜欢
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 2011-01-01
    相关资源
    最近更新 更多