私はvb.netラジオボタンprogromatically設定イベント
一般的に、レジストリから保存された設定から値を使用して、フォームをロードしています「をクリックしてください」「チェック」と起こさない: もしsFormat = TG_ReportFormatDft RadioButton1.Checked = trueの場合、 ........エルス RadioButton2.Checked = Trueの .......... エンド
TG_ReportFormatDft場合は定数文字列であり、重要ではありません。ラジオボタンは正しくグループ化され、手動でクリックすると正しく動作します。その後、手動で変更があった場合、私はチェックの手順で
:
'Follow what the user is doing
Private Sub RadioButton1_Click(sender As Object, e As EventArgs) Handles RadioButton1.Click
msReports_Format2 = TG_ReportFormatDft
DoButtons(True)
End Sub
Private Sub RadioButton2_Click(sender As Object, e As EventArgs) Handles RadioButton2.Click
msReports_Format2 = TG_ReportFormatAlt
DoButtons(True)
End Sub
これらの下流のサブルーチンをマウスクリックなしでトリガされたときに私の驚きを想像してみてください。 RadioButton1.Checked = True ---マウスクリックイベントをトリガします。
「変更時」イベントは認識できますが、マウスクリックは発生していません。
この「クリック」イベントが伝播しないようにするにはどうすればよいですか?
私はそれを取得しません。あなたは "...手動で変更があったかどうかをチェックする"というイベントハンドラを使用していますか? 'DoButtons'とは何ですか?どのような問題があっても、データバインディングはモデルがプロパティ変更イベントを発生させるのに役立ちます。 – Crowcoder
レジストリからデフォルトをロードした後にクリックイベントハンドラを設定する必要があります。だからデザイナーではなく、 'AddHandler RadioButton1.Click、AddressOf RadioButton1_Click'のようなコードで –
これはなぜ問題なのか正確には分かりませんが、そうではありません。簡単な解決策は、クラスに 'IgnoreClick As Boolean'変数を追加することです。 –