vb.net中动态创建的对象的事件处理

时间:2015-11-03 18:55:29

标签: .net vb.net winforms dynamic

我正在Windows窗体上创建动态对象,到目前为止,我已设法动态创建标签和单选按钮等对象。但是,现在我正在努力处理事件处理过程。我知道我必须使用AddressHandler和AddressOf(从下面的代码中可以看出)

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

如果用户从单选框中选择特定选项,我需要输出消息框的代码。例如,如果他们选择“true”,则应弹出一个msgbox。

有人可以给我一些指导,仅仅是让代码识别用户已经选择了一个单选按钮并识别无线电按钮的文本,例如“真实”,“错误”等。

提前致谢。

如果您需要进一步澄清,请询问。

2 个答案:

答案 0 :(得分:1)

尝试投射发件人:

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

答案 1 :(得分:1)

您可以使用Tag属性并将其设置为某个值,以便稍后识别控件。

radi.Tag = 1

然后

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

End If