2015-07-13 39 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

請檢查我更新的答案,希望能夠解決您的查詢。請標記如果作爲答案,如果它的作品謝謝:) –

相關問題