Private Sub RadioButton_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles RadioButton1.CheckedChanged, RadioButton2.CheckedChanged If Me.RadioButton1.Checked Then Console.WriteLine("ラジオボタン1がチェックOn時の処理です。") ElseIf Me.RadioButton2.Checked Then Console.WriteLine("ラジオボタン2がチェックOn時の処理です。") End If End Sub
このようなコードだと
ラジオボタン2をチェックONすると
まずラジオボタン2がチェックOnになったのでCheckedChangedイベントが走り、「ラジオボタン2がチェックOn時の処理です。」が出力されます。
そしてラジオボタン1がチェックOffになったのでCheckedChangedイベントが走り、再度「ラジオボタン2がチェックOn時の処理です。」が出力されます。
以下のコードのようにすれば処理が2回実行されることはないですね。
Private Sub RadioButton_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles RadioButton1.CheckedChanged, RadioButton2.CheckedChanged If DirectCast(sender, RadioButton).Checked Then If Me.RadioButton1.Checked Then Console.WriteLine("ラジオボタン1がチェックOn時の処理です。") ElseIf RadioButton2.Checked Then Console.WriteLine("ラジオボタン2がチェックOn時の処理です。") End If End If End Sub
Private Sub RadioButton_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles RadioButton1.CheckedChanged, RadioButton2.CheckedChanged If Sender.Equals(Me.RadioButton1) AndAlso Me.RadioButton1.Checked Then Console.WriteLine("ラジオボタン1がチェックOn時の処理です。") ElseIf Sender.Equals(Me.RadioButton2) AndAlso RadioButton2.Checked Then Console.WriteLine("ラジオボタン2がチェックOn時の処理です。") End If End Sub
0 件のコメント:
コメントを投稿