настройка Back back для отключенного комбо на белый цвет - PullRequest
0 голосов
/ 24 мая 2011

привет, у меня есть поле со списком, которое может включаться и отключаться во время выполнения. Теперь мне нужно, чтобы задний цвет оставался постоянным, даже если он включен или отключен. Кто-нибудь может мне помочь?

Ответы [ 4 ]

3 голосов
/ 06 сентября 2012

Я нашел следующие решения.

Решение 1:

установите для раскрывающегося стиля значение "DropDownList", если оно отключено, а затем сбросьте его до "DropDown", когда вы включили элемент управления

.
combobox.DropDownStyle = ComboBoxStyle.DropDownList;

Решение 2:

иди сюда http://www.codeproject.com/Articles/22454/ReadOnly-ComboBox

Первое решение работает для меня, а второе решение вы можете попробовать.

1 голос
/ 24 мая 2011

Это сработало для меня

comboBox1.DropDownHeight = 1;
comboBox1.KeyDown += new KeyEventHandler(comboBox1_KeyDown);
comboBox1.KeyPress += new KeyPressEventHandler(comboBox1_KeyPress);
comboBox1.KeyUp += new KeyEventHandler(comboBox1_KeyUp);

Теперь в каждом из этих обработчиков просто установите e.Handled = true

void comboBox1_KeyUp(object sender, KeyEventArgs e)
{
    e.Handled = true;
}

void comboBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    e.Handled = true;
}

void comboBox1_KeyDown(object sender, KeyEventArgs e)
{
    e.Handled = true;
}

Теперь, когда вам нужно функционировать как Enabled, просто удалитеобработчики и установить DropDownHeight

comboBox1.KeyDown -= new KeyEventHandler(comboBox1_KeyDown);
comboBox1.KeyPress -= new KeyPressEventHandler(comboBox1_KeyPress);
comboBox1.KeyUp -= new KeyEventHandler(comboBox1_KeyUp);
1 голос
/ 24 мая 2011

Если это WinForms, установите для свойства BackColor значение, которое вы хотите.

Как указано ниже, это НЕ работает.

0 голосов
/ 24 мая 2011

В зависимости от того, что именно вы ищете, Поиск в Google нашел мне потенциальное решение:

Если вы хотите получить комбинированный список в отключенном состоянии (неизменяемый, но выглядящий так же, как при включении), затем быстро установите для свойства Enabled значение true, значение false, а затем снова нажмите Enter при достижении этого, хотя в некоторой хакерской манере:

bool isDisabled = true;
private void comboBox1_Enter(object sender, EventArgs e)
{
    if(isDisabled)
    {
        comboBox1.Enabled = false;
        comboBox1.Enabled = true;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...