Цвет фона Combobox пока не включен - PullRequest
0 голосов
/ 10 марта 2010

У меня есть выпадающий список, у которого есть Enabled = false. Если это так, то становится серым. Мне было интересно, есть ли способ сохранить цвет фона флажка как cornsilk, пока он не включен?

Ситуация такова, что у меня есть форма, которую я буду обновлять данными при выборе элемента. Если пользователь выбирает редактирование записи, я разрешаю форме принимать изменения, и, поскольку это в основном текстовые поля, я просто изменяю их свойство только для чтения. Но поле со списком выглядит по-другому, поэтому я хочу посмотреть, что я могу сделать, чтобы он остался таким же, как и остальные формы ...

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 10 марта 2010

Вы можете использовать Jquery UI или другие плагины, если важны эстетика формы. Вы можете контролировать весь внешний вид с помощью CSS.

Возможность скрыть комбинированный список с текстовым полем возможна, как предполагает Уилл, но тогда вам придется использовать абсолютную ширину для выпадающего списка.

0 голосов
/ 10 марта 2010

Я бы просто скрыл его с TextBox и установил для свойства Visible значение false. Затем вы, пользователь, нажимаете кнопку «Редактировать», скрываете текстовое поле и отображаете свой ComboBox с его свойством Visible, установленным в значение true.

Возможно, вы хотите обновить свойство TextBox.Text, установив его значение в значение свойства ComboBox.SelectedItem в обработчике событий SelectedItemChanged ().

Предположим, что следующее:

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 (), чтобы вернуть вашу форму в режиме только для чтения.

...