Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
3 / 2 / 1
Регистрация: 04.12.2015
Сообщений: 73

Как сделать combobox зависимым полем от другого combobox?

14.08.2020, 16:03. Показов 3531. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать combobox зависимым от того, что выше него. Допустим я выбираю тип товара (продовольственный или непродовольственный) и в категории должны выпадать только те или иные типы товаров. С остальными также
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
conn = new OleDbConnection(Properties.Settings.Default.my_db);
            adTypeTovara = new OleDbDataAdapter("select * from ТипТовара", conn);
            adCategory = new OleDbDataAdapter("select Категории.КодКатегории, Категории.Наименование, Категории.КодТипа, ТипТовара.Тип from ТипТовара inner join Категории on ТипТовара.КодТипа = Категории.КодТипа;", conn);
            adPostavshik = new OleDbDataAdapter("SELECT Поставщик.КодПоставщика, Поставщик.КодКатегории, Поставщик.Наименование, Поставщик.Телефон, Поставщик.Город, Категории.Наименование FROM Категории INNER JOIN Поставщик ON Категории.КодКатегории = Поставщик.КодКатегории;", conn);
            adTovar = new OleDbDataAdapter("SELECT Товары.КодТовара, Товары.КодЕдИзм, Товары.КодПоставщика, Товары.Наименование, Товары.Цена, ЕдиницыИзмерения.ЕдиницыИзмерения, Поставщик.Наименование FROM ЕдиницыИзмерения INNER JOIN(Поставщик INNER JOIN Товары ON Поставщик.КодПоставщика = Товары.КодПоставщика) ON ЕдиницыИзмерения.КодЕдИзм = Товары.КодЕдИзм;", conn);
            adPocupatel = new OleDbDataAdapter("select * from Покупатели", conn);
            adNaryad = new OleDbDataAdapter("SELECT Наряд.КодНаряда, Наряд.Дата, Покупатели.Наименование, Категории.Наименование, Поставщик.Наименование, Товары.Наименование, ТипТовара.Тип, ЕдиницыИзмерения.ЕдиницыИзмерения, Наряд.КоличествоНаряд, Товары.Цена, Наряд.ОбщаяЦена FROM ЕдиницыИзмерения INNER JOIN(ТипТовара INNER JOIN(((Покупатели INNER JOIN(Товары INNER JOIN Наряд ON Товары.КодТовара = Наряд.КодТовара) ON Покупатели.КодПокупателя = Наряд.КодПокупателя) INNER JOIN Категории ON Наряд.КодКатегории = Категории.КодКатегории) INNER JOIN Поставщик ON(Наряд.КодПоставщика = Поставщик.КодПоставщика) AND(Поставщик.КодПоставщика = Товары.КодПоставщика) AND(Категории.КодКатегории = Поставщик.КодКатегории)) ON(Наряд.КодТипа = ТипТовара.КодТипа) AND(ТипТовара.КодТипа = Категории.КодТипа)) ON ЕдиницыИзмерения.КодЕдИзм = Товары.КодЕдИзм;", conn);
 
 
            adTypeTovara.Fill(ds, "ТипТовара");
            adCategory.Fill(ds, "Категории");
            adPostavshik.Fill(ds, "Поставщик");
            adTovar.Fill(ds, "Товары");
            adPocupatel.Fill(ds, "Покупатели");
            adNaryad.Fill(ds, "Наряд");
 
            bsTypeTovara = new BindingSource();
            bsCategory = new BindingSource();
            bsPostavshik = new BindingSource();
            bsTovar = new BindingSource();
            bsPocupatel = new BindingSource();
            bsNaryad = new BindingSource();
 
            bsTypeTovara.DataSource = ds.Tables["ТипТовара"];
            bsCategory.DataSource = ds.Tables["Категории"];
            bsPostavshik.DataSource = ds.Tables["Поставщик"];
            bsTovar.DataSource = ds.Tables["Товары"];
            bsPocupatel.DataSource = ds.Tables["Покупатели"];
            bsNaryad.DataSource = ds.Tables["Наряд"];
здесь я к комбобокс привязываю поля

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
dataGridView1.DataSource = f1.bsNaryad;
 
            comboBox1.DataSource = f1.bsPocupatel;
            comboBox1.DisplayMember = "Наименование";
            comboBox1.ValueMember = "КодПокупателя";
 
            comboBox2.DataSource = f1.bsTypeTovara;
            comboBox2.DisplayMember = "Тип";
            comboBox2.ValueMember = "КодТипа";
 
            comboBox3.DataSource = f1.bsCategory;
            comboBox3.DisplayMember = "Наименование";
            comboBox3.ValueMember = "КодКатегории";
 
            comboBox4.DataSource = f1.bsPostavshik;
            comboBox4.DisplayMember = "Наименование";
            comboBox4.ValueMember = "КодПоставщика";
 
            comboBox5.DataSource = f1.bsTovar;
            comboBox5.DisplayMember = "Наименование";
            comboBox5.ValueMember = "КодТовара";
 
            comboBox6.DataSource = f1.bsEdIzmer;
            comboBox6.DisplayMember = "КодЕдИзм";
            comboBox6.ValueMember = "ЕдиницыИзмерения";
Это не срабатывает

C#
1
comboBox6.DataBindings.Add("SelectedValue", comboBox5.DataSource, "КодТовара", true);
Миниатюры
Как сделать combobox зависимым полем от другого combobox?  
Изображения
 
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.08.2020, 16:03
Ответы с готовыми решениями:

Как сделать ComboBox зависимым от другого ComboBox
Имеются два combobox'а в обоих одни и теже данные города отправки и прибытия как сделать их зависимыми друг от друга Допустим если в...

Как сделать ComboBox зависимым от TextBox?
Добрый день! такая ситуация. Есть таблица например 1/01,01/тема книги 1/01,02/тема топика 1/01,03/тема .... 2/01,01/тема чего то ...

C# Как сделать чтобы при выборе в combobox , менялись значения в других combobox?
Приветствую коллеги. Только встал на путь программирования и столкнулся с дилеммой. Есть форма, на ней 4 combobox. В каждом combobox по...

21
3 / 2 / 1
Регистрация: 04.12.2015
Сообщений: 73
19.08.2020, 19:27  [ТС]
Студворк — интернет-сервис помощи студентам
Igr_ok, он так и прописан с проверкой
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
 
            if (comboBox2.SelectedValue != null)
            {
                f1.bsCategory.Filter = "КодТипа=" + (comboBox2.SelectedValue as DataRowView).Row["КодТипа"];
 
            }
            comboBox3.ValueMember = "КодКатегории";
            comboBox3.DisplayMember = "Наименование";
            comboBox3.DataSource = f1.bsCategory;
 
 
 
        }
0
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
20.08.2020, 11:32
RobDiez, в отладчике посмотрите, что находится в comboBox2.SelectedValue. В зависимости от выбранного источника данных там или DataRowView или значение из столбца, указанного в ValueMember комбобокса. И нужно учитывать, что событие comboBox2_SelectedIndexChanged может вызываться до того, как комбобокс получит DataSource или при его изменении, поэтому нужно делать проверки.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.08.2020, 11:32

Как сделать чтобы при выборе в combobox , менялись значения в других combobox?
Есть два combobox. Как их сделать зависимыми друг от друга. Что бы при выборе одного combobox менялись данные в другом. К примеру: В...

Как сделать чтобы при выборе в comboBox, выводилось значение в другом comboBox?
Здравствуйте! Есть таблица из 2 столбца (id, name). Как сделать чтобы при выборе из первого comboBox вывести значение другому comboBox?...

Как сделать чтобы при выборе в combobox , менялись значения в других combobox? Visual Basic 6.0
Есть несколько компонентов Combobox, списки через Form_load я прописал, теперь списки отображаются. Но как сделать так чтобы при выборе в...

ComboBox, значения в котором зависят от выбранного пункта другого ComboBox-а
Как можно сделать так чтобы при выборе определенного значения ComboBox1 в ComboBox2 был свой набор (Items). Например: В ComboBox1 выбрал...

Значение из ComboBox формы в запросе MS SQL для другого ComboBox
Здравствуйте! Научите пожалуйста использовать значение ComboBox (хотя бы VB) в запросе MS SQL. Значение числовое int. Знаю, что для...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru