Combobox отменить выпадающий - PullRequest
       1

Combobox отменить выпадающий

0 голосов
/ 12 декабря 2011

У меня есть поле со списком, которое открывает новое окно формы с сеткой данных, и я хочу, чтобы пользователи выбирали элементы через эту таблицу данных, а не через поле со списком.У меня есть этот код для достижения этой цели:

    private void comboBox1_DropDown(object sender, EventArgs e)
    {
        valSel.incBox = (ComboBox)sender;            
        valSel.Show();
        if (this.comboBox1.DroppedDown)
        {
            MessageBox.Show("test");
            SendMessage(this.comboBox1.Handle, CB_SHOWDROPDOWN, 0, 0);
        }
    }

Как видите, я также пытаюсь скрыть выпадающий список, но он не работает.Я предполагаю, что это потому, что выпадающий список еще не «выпал», так что часть кода никогда не запускается.Есть ли событие или что-то, что я могу поместить в ячейку, когда выпадающий список полностью «выпал», поэтому я могу отправить сообщение, чтобы закрыть его снова?

Ответы [ 3 ]

2 голосов
/ 12 декабря 2011

Вы должны иметь возможность просто установить высоту ComboBox на что-то очень маленькое. В прошлый раз, когда я смотрел на него, это определяло высоту всплывающей части (фактическая высота элемента управления определяется размером пользовательского интерфейса / шрифта).

Однако более элегантным способом было бы использование пользовательского элемента управления, который просто имитирует появление выпадающих окон (я уверен, что это можно сделать простым способом).

0 голосов
/ 05 августа 2016

1) создать событие KeyPress на ComboBox из свойств. 2) написать код

private void cmbClientId_KeyPress(object sender, KeyPressEventArgs e) { ((ComboBox)sender).DroppedDown = false; }

0 голосов
/ 19 октября 2015

В comboBox1.Enter установите фокус на другой элемент управления, если условие выполнено.

 private void comboBox1_Enter(object sender, EventArgs e)
    {
        if (comboBox1.Items.Count < 1)
        {
            comboBox1.DroppedDown = false;
            comboBox2.Focus();
            MessageBox.Show("Select a list first");
            comboBox2.DroppedDown = true;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...