2011-07-01 8 views

答えて

-1

ちょうどradio_CheckedChanged(sender, EventArgs.Empty)と書いてください。本質的なメソッドを呼び出すのと非常によく似ています。

EDIT

これはあなたが別々のメソッドにコードのロジックをカプセル化して、あなたの条件に基づいて、それぞれのハンドラでこれらを呼び出すことができれば、それは良いだろうので、これを行うためのエレガントな方法ではありません

+1

良い解決策。イベントハンドラは、[Observer Design Pattern](http://sourcemaking.com/design_patterns/observer)で定義されているように、イベントが発生した結果としてのみ呼び出され、直接は呼び出されません。 –

+0

上のコメントに同意し、このコードをさらにサポートするために多くのトラブルが発生します – zabulus

+0

だからいずれかがより良い方法を与えることができます – Vivekh

0

私はこれを単純化しすぎているかもしれませんが、あなたのdropdown_SelectedIndexChangedでは、チェックされた変更イベントを発生させるラジオボタンの値を設定するだけで、値を変更したくない場合はdropdown_SelectedIndexChangedイベントからradio_CheckedChangedを呼び出すだけです。

0

イベントを自動的にトリガーするようにradio.Checkedプロパティを更新できますか?イベントホルダーは、いつイベントを発生させるかを認識しています。

4

イベントを定義するクラスの外からイベントを発生させることはできません。unless you inherit from it

あなたの目標は両方RadioButton.CheckedChangedDropDownList.SelectedIndexChangedイベントに同じアクションを実行する場合、あなたは別の方法でコードを抽出し、両方のイベントハンドラからそれを呼び出すことができます:IMOこれではありません

public void radioButton_CheckedChanged(object sender, EventArgs e) 
{ 
    DoSomething(); 
} 

public void dropDownList_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    DoSomething(); 
} 

private void DoSomething() 
{ 
    // ... 
}