2011-04-07 9 views
1

コントロールを別のコントロールに依存させる方法はありますか?私はコンボボックスとボタンを持っており、コンボボックスで選択された項目がある場合にのみ、ボタンを有効にする必要があります。Windowsフォームのコントロール間のバインド

SelectedIndexChangedコールバック内のボタンのEnabledプロパティを設定できることはわかっていますが、いくつかのコードが必要です。また、ボタンの初期状態に問題があります。だから私は手動でイベントを渡す必要がない何かを探しています、これは可能ですか?

ありがとうございます!

+1

WPFはあなたの答えです。私はこれがまっすぐ進むことができないと思います。 –

+0

いいえ、1行のコードを効果的に2行または3行の文を初期化する必要がある何らかのバインディングに置き換えることはできません。 Winformsバインディングは、とにかく柔軟ではありません。最初の状態は決して問題ではありません。デザイナーに残した状態から始まります。 –

+0

ありがとう、@Sanjeevakumarと@ハンス!私はこれが私の質問に答えると思う。 –

答えて

1

いいえ、コードなしでこれを行う方法はありません。それから私は、すぐに状態が変化につながる可能性相互作用があるとして、あちこちからこのメソッドをトリガー

private void SetControlStates() 
{ 
    theButton.Enabled = theComboBox.SelectedIndex >= 0; 
    // code for other controls follow here 
} 

:私は通常、やることは一つの特定の方法にかかる全ての状態設定コードを収集することです(フォームの読み込みが完了したときに最後に行うことを含み、初期状態を処理します)。不必要な割り当てを避けたい場合は、最初に値をチェックするコードを追加してください:

private void SetControlStates() 
{ 
    bool buttonEnabled = theComboBox.SelectedIndex >= 0; 
    if (theButton.Enabled != buttonEnabled) theButton.Enabled = buttonEnabled; 
    // code for other controls follow here 
} 
関連する問題