2015-11-03 68 views
1

我在Windows窗體上創建動態對象,到目前爲止,我已經設法動態地創建對象,如標籤和單選按鈕。但是,現在我正在努力處理事件處理。我知道,我必須使用AddressHandler,廠址(你可以從下面的代碼中看到)在vb.net中動態創建對象的事件處理

Private Sub btnCreate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCreate.Click 

    Dim i As Integer 
    Dim radi As RadioButton 
    For i = 1 To 4 
     radi = New RadioButton 
     radi.Location = New System.Drawing.Point(j, n) 
     n = n + 60 
     radi.Text = List(i) 
     radi.Name = "rad" & i 

     Me.Controls.Add(radi) 
     AddHandler radi.CheckedChanged, AddressOf Me.RadioButton_Checked 
    Next 

End Sub 
Private Sub RadioButton_Checked(ByVal sender As System.Object, ByVal e As System.EventArgs) 
    If TypeOf sender Is RadioButton Then 

    End If 
    End If 
End Sub 

我需要的代碼輸出的情況下一個消息框,用戶選擇從單選框特定的選項。例如,如果他們選擇「真」,msgbox應該彈出。

有人可以給我一些指導,僅僅讓代碼認識到用戶已經選擇了單選按鈕並且識別單選按鈕的文本,例如「真」,「錯」等。

在此先感謝。

如果您需要任何更多的澄清只是問。

+1

'TypeOf運算sender'總是將是'RadioButton'一個單選按鈕點擊事件 - 你需要投'sender'獲得其屬性。查看文本或在Tag屬性中存儲一些東西 – Plutonix

+0

Plutonix儘管發送與發件人相同的對象是最佳做法,但第一部分並不總是正確。在某些情況下可能會有所不同。不是在這種情況下。當然是因爲他直接使用單選按鈕類。 – Behrooz

回答

1

嘗試鑄造發件人:

With DirectCast(sender, RadioButton) 
    If .Checked Then 
    'Do Something 
    End If 
End With 
+0

這是否允許在做某事之前檢測單選按鈕的名稱 – User59

+0

@ M.Hasan您可以訪問With Block中的所有控件的屬性和方法。 – LarsTech

+0

不好意思的問題,我相信你可以猜到我是一個noob。謝謝。 – User59

1

可以使用Tag屬性,並將其設置爲某個值,可以幫助您識別與後來的控制。

radi.Tag = 1 

然後

Dim radi as RadioButton = CType(sender, RadioButton) 
if radi.Tag = 1 Then 

End If 
+0

你的建議也被證明是有幫助的。謝謝。 – User59