С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
2 / 2 / 0
Регистрация: 21.11.2015
Сообщений: 75

Как заставить combobox.DroppedDown не выбирать значение?

01.03.2016, 21:46. Показов 3434. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, у меня есть алгоритм поиска в комбобоксе по вложению. (подсказали на вашем форуме)

Но при первом цикле работы обработчика события, сразу в момент выполнения DroppedDown в комбобокс подставляет первое найденное значение.
Например, только я вписал "к" и он тут же подставил "кжд" в поле комбика.

Затем, если я сотру бэкспейсом эти "КЖД" и снова введу "к" то отрабатывает отлично - т.е. вываливает список с подходящими значениями (теми, в которые входит буква "к"). В чем причина такой работы алгоритма понять не могу.

Всю голову сломал. Помогите пожалуйста.
Как заставить свойство DroppedDown не выбирать значение?

Вот полный код алгоритма, если необходимо. Благодарю!
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 public partial class Form5SQLQuery : Form
    {
        BindingSource bs;
         private void Form5SQLQuery_Load(object sender, EventArgs e)
         {
                string fillOrg = "Select Название from Организации";
                DataTable table = new DataTable();
                SqlDataAdapter da = new SqlDataAdapter(fillOrg, cn);
                da.Fill(table);
                bs = new BindingSource();
                bs.DataSource = table;
                comboBox1.DataSource = table;
                comboBox1.DisplayMember = "Название";
           }
 
 private void comboBox1_TextUpdate(object sender, EventArgs e)
        {
          //  comboBox1.SelectionLength = 0;
            comboBox1.DroppedDown = true;
            Cursor.Current = Cursors.Default;
            try
            {
                string filter = comboBox1.Text;
                bs.Filter = "Название LIKE '%" + filter + "%'";
                
                comboBox1.Text = filter;                
                comboBox1.Select(filter.Length, 0);
            }
            catch
            {
                bs.Filter = string.Empty;
            }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.03.2016, 21:46
Ответы с готовыми решениями:

Свойство DroppedDown для DateTimePicker и ComboBox
Открыть программно список выбора для ComboBox можно так: ComboBox1->DroppedDown = true; в DateTimePicker тоже есть такое свойство...

Как заставить ComboBox запомнить крайнее введенное значение?
Private Sub UserForm_Initialize() 'poryadkoviy_nomer TextBox1.Value = "" 'data 'chislo TextBox2.Value = "" ...

Как заставить RegEx выбирать кирилицу
Здраствуйте уважаемые форумчане. Почему то все мои регулярные выражения прекрасно работают с латиницей, и совершенно не хотят работать с...

2
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
01.03.2016, 23:34
KennyPanders,
Да, как-то странно реагирует комбобокс на программное открытие списка. Если убрать
C#
19
comboBox1.DroppedDown = true;
то все нормально.
Но если нужно открывать список при получении появлении курсора в комбобоксе, то так попробуйте открывать/ закрывать:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
  //...
        comboBox1.SelectedIndex = -1;
        comboBox1.TextChanged += new EventHandler(comboBox1_TextChanged);
        comboBox1.GotFocus += new EventHandler(comboBox1_GotFocus);
        comboBox1.LostFocus += new EventHandler(comboBox1_LostFocus);
    }
}
 
void comboBox1_LostFocus(object sender, EventArgs e)
{
    comboBox1.DroppedDown = false;
}
 
void comboBox1_GotFocus(object sender, EventArgs e)
{
    comboBox1.DroppedDown = true;
}
 
void comboBox1_TextChanged(object sender, EventArgs e)
{
    try
    {
        string filter = comboBox1.Text;
        bs.Filter = "Наименование LIKE '%" + filter + "%'";
        comboBox1.Text = filter;
        comboBox1.Select(filter.Length, 0);
    }
    catch
    {
        bs.Filter = string.Empty;
    }
}
1
2 / 2 / 0
Регистрация: 21.11.2015
Сообщений: 75
02.03.2016, 09:39  [ТС]
да, такая реализация тоже выглядит хорошо. Огромное вам спасибо за помощь. Пусть и не так как хотелось бы.

Хочу еще уточнить. Как устанавливать курсор при открытии формы в поле другого комбика. (Чтобы после открытия формы мне сразу не вываливал список организаций).

TabIndex другому комбику установил на 0.
в Form_Load установил .Focus() на втором комбике.

Однако при переходе на первый комбик - затем закрытие формы - и открытие формы снова, курсор по прежнему на первой форме.
Хотелось бы какое то событие типа "Открытие формы"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.03.2016, 09:39
Помогаю со студенческими работами здесь

Как заставить программу выбирать наибольшие число?
Нужно было сделать программу которая запрашивает 5 чисел и выбирает наибольшие и наименьшие число. С запросом чисел все понятно, но вот как...

Как удалить из файла значение combobox, сохранённого там как ID (значение combobox сохранялось вместе с richtextbox)
Здравствуйте, коллеги! Подскажите, плз... Сохраняю в один файл значение комбика (как ID) и значение richtextbox (а также отдельно в...

Как сделать, чтобы можно было выбирать нужный COM-порт в combobox
на данный момент программа работает только для определенного порта1: CONST WCHAR COM_string = L"COM1"; как сделать , чтобы...

Парсинг XML find(). Как заставить find() выбирать элементы только на первом уровне?
Пытаюсь распарсить XML-ответ от сервера. <reply> <sector> <users> <item> <sex>male</sex> ...

DBLookupComboBox - как выбирать значение из списка
Подскажите лузеру, как правильно настроить компонент DBLookupComboBox чтобы можно было выбирать значение из выпадающего списка? На...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru