2015-07-13 40 views
0

我试图在页面加载时创建按钮,并对这些按钮进行事件控制。我能够创建按钮,但事件似乎并没有被触发,当按钮被点击时,它会抛出一个错误,指出找到id的多个控件。我认为这与按钮的回发和唯一ID创建有关。有人可以指出我应该加入什么吗?在vb.net中创建事件控制。多个控件具有相同的ID'1'被发现

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 

帮助表示赞赏,谢谢:)

回答

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 
+0

我试着初始化计数器和递增它每次调用子程序。但我仍然得到相同的错误。任何其他想法? –

+0

请检查我更新的答案,希望能够解决您的查询。请标记如果作为答案,如果它的作品谢谢:) –

相关问题