0

Windows フォーム アプリケーションをセットアップしています。情報を追加/変更するために、フォームの読み取り専用バージョンと同じフォームの別のバージョンを作成しています。読み取り専用バージョンでは、すべてのフォーム コンポーネントが読み取り専用になるようにフォームを設定しています。Visual Studio 2008 の既定では、フォーム コンポーネントが無効になっている場合、そのコンポーネントの BackColor プロパティは灰色 (っぽい) 色に変更されます。これは、無効にした後でコンポーネントの BackColor プロパティを設定することで簡単に修正できます。ただし、これは ComboBox または CheckBox には当てはまりません。これらのコンポーネントを無効にすると、色を変更できなくなります。これらのコンポーネントを無効にした後、これらのコンポーネントの色を変更する方法を知っている人はいますか? 次のコードを試しましたが、役に立ちませんでした。

comboBoxCategory.Enabled = false;
comboBoxCategory.BackColor = Color.White;

どんな助けでも大歓迎です。

ありがとう。

4

5 に答える 5

0

できません。

チェックボックスの場合は、OnCheckイベントを処理して元に戻します。

コンボボックスの最も簡単な解決策は、1つのアイテムのみを入力することです。ユーザーがクリックした場合はドロップダウンを許可しますが、変更するものはありません。

于 2012-07-13T15:15:07.727 に答える
0

これらのコントロールをそのまま使用してこれを実行できるとは思いません。コンボボックスを拡張し、OnPaint()メソッドをオーバーライドする必要がある場合があります。

コンボボックスを有効のままにして、選択した値を保存し(読み取り専用モードに変更した場合)、SelectedIndexChangedイベントを使用して選択を維持することもできます。

チェックボックスについても同じことを行う必要があると思いますが、CheckChangedイベントを使用してください

于 2012-07-13T15:15:09.110 に答える
0

コードで無効にした直後に ComboBox と CheckBox の BackColor を変更する

それらは、無効または有効になったときにこれらのコントロールでトリガーされるイベントではありません

于 2012-07-13T15:19:23.327 に答える
0

これがあなたが探していたものだと思います:

    comboBoxCategory.BackColor = System.Drawing.Color.White;
于 2012-07-19T05:30:18.847 に答える