2012-01-30 15 views
0

私のアプリケーションにはDomainUpDownのコントロールがいくつかあります。有効になっていないときにコントロールのTextプロパティが変更されないようにする

ノーマル
  • :各コントロールは、個別に/下(変更選択した項目)
  • を特別上がることができます。チェックボックスがチェックされている場合、アップ/ダウニングは、第一の制御は、他の原因になります動作は、次のように設定されています変更するコントロール

ここで、コントロールの一部を無効にする場合は、Disabled = trueを設定します。私はそれをしましたが、この場合、最初のコントロールの選択された項目を変更すると、他の無効なコントロールが選択された項目を変更するようになります。

コントロールを完全に無効にする方法がありますので、control.Text = "bla bla"のようなものは受け付けませんか?

P.S:コントロールを非表示にする必要はありません。

+1

TextBoxの値を更新するイベントでは、TextBoxのEnabledプロパティをチェックし、trueに設定されている場合にのみテキストを変更するのはなぜですか? – Lloyd

+0

私はそれを私の最後の選択肢として予約しました。コントロールの数が多いので、多くの編集が必要です。コントロールを完全に無効にする方法があることを期待していました。なぜ、「無効にする」が実際にコントロールを無効にするのではないのだろうかと思います。 –

+1

無効にすると、ユーザーがコントロールとやりとりしたり、イベントを発生させたりすることができなくなります。 MSDN:Enabledプロパティを使用すると、実行時にコントロールを有効または無効にできます。たとえば、アプリケーションの現在の状態に適用されないコントロールを無効にすることができます。コントロールを無効にして、その使用を制限することもできます。たとえば、ユーザーがクリックしないようにボタンを無効にすることができます。コントロールを無効にすると、コントロールを選択できません。 – Lloyd

答えて

1

一つの方法:あなたのテキストボックスのすべてのエントリを保持しますTextbox.Text値のリストを保持することができます

OnTextChanged

  • あなたのテキストボックスは、ある場合を有効に - それはtext財産のアップデートと、リストにそれを格納します。

  • が無効になっている場合 - あなたのリストにある最後の値にテキストpropertyを設定します。

あなたはKeyValuePairオブジェクトを含むDictionaryまたは類似のものを使用することができます。

0

私は恐れがあります。少なくとも追加作業は必要ありません。

+0

それは答えではありません。私は-1ではありませんが、もっと詳しく説明する必要があります...「追加作業」は何ですか? – Shai

+1

@Shai 'Text'を変更するときにあなた自身のTextBox(または使用しているコンポーネント)を派生させ、' Disabled'プロパティをチェックするか、 'TextChanged'イベントを使って標準のもので直接扱うことができます。 –

関連する問題