2013-02-04 42 views
0

我有一種情況,我動態創建單選按鈕,我需要在CheckedChanged上分配一個處理程序。這裏我沒有任何特定的功能或程序。所以我寫了這樣的說法:如何在AddHandler中使用字符串?

AddHandler rb.CheckedChanged, AddressOf rb.Tag 

但它給出錯誤。我怎樣才能做到這一點?

編輯:

其實我寫在公司的其他程序員的DLL。所以他們可以在運行時設計一個特定的表單。現在我有一個創建所有控件的過程。所以現在,如果他們想創建他們調用過程現在

AddRadioButton(Text as string, Checked as boolean) 

要求單選按鈕,我想補充在這另一個參數,他們可以給程序名字符串,我可以添加處理程序的地址PROCEDURENAME。所以現在的程序會變成這個樣子

AddRadioButton(Text as string, Checked as boolean, OnCheckedProcedure as string) 

而在我的代碼,我會用

AddHandler rb.CheckedChanged, AddressOf OnCheckedProcedure 
+1

你怎麼指望它當檢查狀態改變時,**用這個字符串做**。 –

回答

1

添加有處理程序必須具有相同的參數,若你正在嘗試處理的方法。至於單選按鈕,這裏是處理程序可能看起來像什麼你正在嘗試做的:

Private Sub CheckedChanged(sender As Object, e As EventArgs) 

    Dim tempRB As RadioButton= CType(sender, RadioButton) 

    tempRB.Tag = tempRB.Checked.ToString 

End Sub 

然後,您可以將您的處理程序是這樣的:

 AddHandler rb.CheckedChanged, AddressOf CheckedChanged 
相關問題