フォームにドロップダウンとラジオボタンがあります。私がしたいことはradio_CheckedChanged
にdrodown_SelectedIndexChanged
と電話したいと思っています。誰にでも最高のやり方を伝えることができます他のコントロールのイベントを発生させることは可能ですか?
1
A
答えて
-1
ちょうどradio_CheckedChanged(sender, EventArgs.Empty)
と書いてください。本質的なメソッドを呼び出すのと非常によく似ています。
EDIT
これはあなたが別々のメソッドにコードのロジックをカプセル化して、あなたの条件に基づいて、それぞれのハンドラでこれらを呼び出すことができれば、それは良いだろうので、これを行うためのエレガントな方法ではありません
0
私はこれを単純化しすぎているかもしれませんが、あなたのdropdown_SelectedIndexChangedでは、チェックされた変更イベントを発生させるラジオボタンの値を設定するだけで、値を変更したくない場合はdropdown_SelectedIndexChangedイベントからradio_CheckedChangedを呼び出すだけです。
0
イベントを自動的にトリガーするようにradio.Checked
プロパティを更新できますか?イベントホルダーは、いつイベントを発生させるかを認識しています。
4
イベントを定義するクラスの外からイベントを発生させることはできません。unless you inherit from it。
あなたの目標は両方RadioButton.CheckedChangedとDropDownList.SelectedIndexChangedイベントに同じアクションを実行する場合、あなたは別の方法でコードを抽出し、両方のイベントハンドラからそれを呼び出すことができます:IMOこれではありません
public void radioButton_CheckedChanged(object sender, EventArgs e)
{
DoSomething();
}
public void dropDownList_SelectedIndexChanged(object sender, EventArgs e)
{
DoSomething();
}
private void DoSomething()
{
// ...
}
良い解決策。イベントハンドラは、[Observer Design Pattern](http://sourcemaking.com/design_patterns/observer)で定義されているように、イベントが発生した結果としてのみ呼び出され、直接は呼び出されません。 –
上のコメントに同意し、このコードをさらにサポートするために多くのトラブルが発生します – zabulus
だからいずれかがより良い方法を与えることができます – Vivekh