2012-03-15 10 views
1

フォームのラジオボタンを変更するときにユーザー入力を登録したいのですが、明らかにプログラムの変更からもトリガーしますが、ブール値を使って修正できると思っていましたが、これは問題ありません。ユーザーによるラジオボタンの変更のフィルタリング?

現在のところ、2つのラジオボタンがリンクされており、1つのラジオボタンがトリガーされると、もう1つのラジオボタンがトリガーされます。 1つのラジオボタンを変更したときに両方のメソッドが呼び出されているときに、入力をフィルタリングする最も簡単な方法は何ですか?

+0

あなたは「フィルタ入力」が何を意味するのですか?あなたがプログラム的な変更を無視する必要があると思われ、ユーザーによって引き起こされた変更に対する応答のみ。 –

+1

コードはありますか?投稿できますか? –

答えて

2

あなたがコントロールの値を設定した後ハンドラにを追加してみてくださいすることができます

public Form1() { 
    InitializeComponent(); 

    radioButton1.Checked = true; 
    radioButton1.CheckedChanged += new EventHandler(radioButton_CheckedChanged); 
    radioButton2.CheckedChanged += new EventHandler(radioButton_CheckedChanged); 
} 

private void radioButton_CheckedChanged(object sender, EventArgs e) { 
    RadioButton rb = (RadioButton)sender; 
    if (rb.Checked) 
    MessageBox.Show("User checked " + rb.Text); 
} 
+0

ありがとうございますが、チェックボックスを頻繁に変更しているので、毎回イベントハンドラを登録解除したくありません。 – JamieB

+0

@JamieB多分私は説明で混乱しています*私は単一のラジオボタン*を変更すると、両方のメソッドが呼び出されています。はい。「チェックされていない」ラジオボタンも、その「CheckChanged」イベントを呼び出しています。この場合、送信者がチェックされているかどうかを見るだけで、「イベント」をフィルタリングできます。私のサンプルコードでは、両方のラジオボタンがそのイベントを呼び出していますが、 'if'条件のために1つのMessageBoxだけが表示されています。 – LarsTech

+0

ああ、謝罪ラルス、私は実際にはうまく動作しますが、解決策を尋ねただけです。ありがとう。 – JamieB

関連する問題