質問

私は= falseを有効にしたコンボボックスを持っています。それはそうである場合、それは灰色に陰影にそれを引き起こします。それが有効になっていない間、私はcornsilkとして、チェックボックスの背景色を保つことができる方法があった場合、私は不思議でしたか?

の状況は、私は項目が選択されたとき、私はデータで更新されますフォームを持っているということです。ユーザーがレコードを編集することを選択した場合、私は、変更を受け入れるようにフォームを有効にして、それが主にあるテキストボックスので、私はちょうどそれらの読み取り専用プロパティを変更します。しかし、コンボボックスには、

...私はそれがフォームの残りの部分のように同じままにするために何ができるか見てみたいので、違って見えます

任意のアイデア?

役に立ちましたか?

解決

私は単にそれ以上のTextBoxでそれを隠し、虚偽にVisibleプロパティを設定します。その後、あなたはあなたのユーザー、あなたのテキストボックスを非表示にし、trueに設定Visibleプロパティを使用してコンボボックスを表示し、[編集]ボタンをクリックします。

おそらく、あなたはSelectedItemChanged()イベントハンドラにComboBox.SelectedItemプロパティ値にその値を設定することで、あなたのTextBox.Textプロパティを更新したい。

のは、次のことを仮定しよう。

ComboBox cb = new ComboBox();
// Position, size and other properties are set through design.
cb.SelectedIndex = 0; // Forces selection of first item for demo purposes.

TextBox tb = new TextBox();
tb.Size = cb.Size;
tb.Position = cb.Position;
tb.Text = cb.SelectedItem.ToString();
tb.Visible = true;
tb.Readonly = true;

cb.Visible = false;

次に、[編集]ボタンをクリックします:

private void EditButton_Click(...) {
    tb.Visible = false;
    cb.Visible = true;
}

そして、あなたのTextBox.Textプロパティの値は、あなたのSelectedItemを追従させるます:

private void ComboBox_SelectedIndexChanged(...) {
    tb.Text = cb.SelectedItem.ToString;
}

そして、あなただけの読み取り専用モードで自分のフォームを取り戻すためにあなたのEditButton_Click()イベントハンドラの逆を行うだろう。

他のヒント

あなたは、フォームの美しさが重要である場合はjQueryのUIや他のプラグインを使用して検討することができます。あなたは、全体の外観を制御し、CSSで感じることができます。

テキストボックスとコンボボックスを非表示にする意志によって示唆されているように可能性があるが、その後、あなたはドロップダウンのために絶対的な幅を使用する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top