在vb.net中创建事件控件。具有相同ID的多个控件' 1'被找到

时间:2015-07-13 08:55:31

标签: asp.net vb.net events event-handling

我试图在页面加载时创建按钮并对其进行事件控制。我能够创建按钮但是当单击按钮时事件似乎没有被触发而是它抛出一个错误,说明找到了id的多个控件。我认为这与按钮的回发和唯一ID创建有关。有人可以指出我要添加什么?

 Sub createbutton()

        Dim but As New Button
        but.Text = "save"
        but.ID = "but"
        AddHandler but.Click, AddressOf Button_Click
        Me.form1.Controls.Add(but)

    End Sub

对此的事件控制如下。

Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        ' Handle your Button clicks here
        MsgBox("done")
    End Sub

我得到了错误

Multiple controls with the same ID '1' were found

子程序createbutton适用于页面加载,如下所示。

Public Class Default3

    Inherits System.Web.UI.Page


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load ' to gen page on load ;)
    createbutton()

End Sub

感谢帮助,谢谢:)

1 个答案:

答案 0 :(得分:0)

我认为你是一个用VB 6.0工作过很多的人 控制阵列功能在VB 6.0中可用

在VB.net中

一切都取决于控件ID。

如果您没有像ID这样的特定要求,那么我建议请附加前缀和增量ID来解决您的问题。

如果您有一些具体要求,请告诉我

由于 阿西

更正的代码,而不是ID,它的名称允许唯一性

Public Class Form1   
Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    ' Handle your Button clicks here
    MsgBox("done")
End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    createbutton()
End Sub
Sub createbutton()

    Dim but As New Button
    but.Text = "save"
    but.Name = "but"
    AddHandler but.Click, AddressOf Button_Click
    Me.Controls.Add(but)

End Sub
End Class