Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.76/41: Рейтинг темы: голосов - 41, средняя оценка - 4.76
8 / 8 / 10
Регистрация: 16.10.2012
Сообщений: 523

Посчитать сумму в зависимости от выбранных параметров в comboBox

24.03.2014, 16:20. Показов 7998. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется форма на которой пользователь может рассчитать конечную сумму выбранного им ноутбука(Скрин 1)
Вопрос заключается в следующем, у меня получается прогружать параметры каждого ноутбука (у каждого свои), но вот с подсчетом цены глухо. В зависимости от того какую модель пользователь выберет и какие параметры он захочет, рассчитывать цену в нескольких эквивалентах: Белорусские рубли, Российские рубли, Доллары и Евро.
Код добавления параметров:
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            switch (e.Node.Text)
            {
                case "Aspire 5250":
                    {
                        comboBox1.Items.Clear();
                        comboBox2.Items.Clear();
                        comboBox3.Items.Clear();
                        comboBox4.Items.Clear();
                        comboBox5.Items.Clear();
                        string[] mas1 = { "Zacate" };
                        comboBox1.Items.AddRange(mas1);
 
                        string[] mas2 = { "HD 6310" };
                        comboBox2.Items.AddRange(mas2);
 
                        comboBox3.Items.Add("15.6");
 
                        string[] mas3 = { "2048МБ" };
                        comboBox4.Items.AddRange(mas3);
 
                        string[] mas4 = { "320ГБ" };
                        comboBox5.Items.AddRange(mas4);
 
                        textBox1.Text = "Aspire 5250";                       
                        break;
                    }
 case "Aspire E1 571G":
                    {
                        comboBox1.Items.Clear();
                        comboBox2.Items.Clear();
                        comboBox3.Items.Clear();
                        comboBox4.Items.Clear();
                        comboBox5.Items.Clear();
                        string[] mas1 = { "Core i3", "Core i5" };
                        comboBox1.Items.AddRange(mas1);
 
                        string[] mas2 = { "710M", "GT 620M", "HD 3000" };
                        comboBox2.Items.AddRange(mas2);
 
                        comboBox3.Items.Add("15.6");
 
                        string[] mas3 = { "3072МБ", "4096МБ" };
                        comboBox4.Items.AddRange(mas3);
 
                        string[] mas4 = { "320ГБ", "500ГБ" };
                        comboBox5.Items.AddRange(mas4);
 
                        textBox1.Text = "Aspire E1 571G";                                                                     
                        break;
                    }
Помогите с кодом
Миниатюры
Посчитать сумму в зависимости от выбранных параметров в comboBox  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.03.2014, 16:20
Ответы с готовыми решениями:

Посчитать сумму в зависимости от выбранных чекбоксов
Приветствую уважаемые форумчане. В c# новичок, хочу попросить у вас помощи. Задача такова. Есть 10 checkbox'ов в зависимость от...

Вывод результата, в зависимости от выбранных значений Combobox
Подскажите пожалуйста как лучше сделать. Допустим у меня есть несколько Combobox в программе, и мне нужно в зависимости от выбранных...

Показывать картинки в зависимости от выбранных значений в ComboBox
Всем привет!!!!! Подскажите пожалуйста, как реализовать задуманное. Создаю схемы эвакуации при пожаре учреждения. Состоящего из нескольких...

28
Заблокирован
26.03.2014, 00:02
Студворк — интернет-сервис помощи студентам
Darkvoid, пару вопросов по коду:

C#
1
string[] mas1 = { "Zacate" };
зачем тут массив?

C#
1
if (textBox1.Text == "Acer Aspire 5250")
если будет 100 моделей, для каждой прийдется прописывать столько строчек кода?
0
8 / 8 / 10
Регистрация: 16.10.2012
Сообщений: 523
26.03.2014, 00:11  [ТС]
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
зачем тут массив?
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
 case "Aspire V5 571G":
                    {
                        comboBox1.Items.Clear();
                        comboBox2.Items.Clear();
                        comboBox3.Items.Clear();
                        comboBox4.Items.Clear();
                        comboBox5.Items.Clear();
                        string[] mas1 = { "Core i3", "Core i5", "Core i7" };
                        comboBox1.Items.AddRange(mas1);
 
                        string[] mas2 = { "710M", "GT 630M", "GT 650M", "GT 730M" };
                        comboBox2.Items.AddRange(mas2);
 
                        comboBox3.Items.Add("17.3");
 
                        string[] mas3 = { "4096МБ", "6144МБ", "8192МБ", "16384МБ" };
                        comboBox4.Items.AddRange(mas3);
 
                        string[] mas4 = { "120ГБ", "128ГБ", "500ГБ", "750ГБ", "1000ГБ" };
                        comboBox5.Items.AddRange(mas4);
 
                        textBox1.Text = "Aspire V5 571G";  
                        break;
                    }
А вот зачем, это эквивалентно тому, что вы будете писать три раза подряд
C#
1
2
3
comboBox1.Items.Add("Core i3");
comboBox1.Items.Add("Core i5");
comboBox1.Items.Add("Core i7");
Разве это не уменьшает количества строчек кода?
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
если будет 100 моделей, для каждой прийдется прописывать столько строчек
кода?
Тут я пока на данный момент не вижу другого варианта, как 48 раз прописать проверку на то, какая модель в данный момент выбрана, тут свои минусы(
0
Заблокирован
26.03.2014, 00:18
Darkvoid,
Цитата Сообщение от Darkvoid Посмотреть сообщение
вот зачем, это эквивалентно тому, что вы будете писать три раза подряд
я о другой строке, там где 1 параметр

Цитата Сообщение от Darkvoid Посмотреть сообщение
Тут я пока на данный момент не вижу другого варианта, как 48 раз прописать проверку на то, какая модель в данный момент выбрана, тут свои минусы(
Принципиальный вопрос состоит в том, что если список параметров один для всех моделей, то можно существенно уменьшить число таких присваиваний.
0
8 / 8 / 10
Регистрация: 16.10.2012
Сообщений: 523
26.03.2014, 00:24  [ТС]
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
Принципиальный вопрос состоит в том, что если список параметров один для всех моделей, то можно существенно уменьшить число таких присваиваний.
Тут не у каждой модели одинаковые параметры, зачастую разные они
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
я о другой строке, там где 1 параметр
Zacate типа тип процессора как и Core i3, я бд еще в позапрошлом году составлял, данные брал с онлайнера
0
Заблокирован
26.03.2014, 00:32
Цитата Сообщение от Darkvoid Посмотреть сообщение
Тут не у каждой модели одинаковые параметры, зачастую разные они
Может тогда использовать Dictionary<TKey, TValue> что-то вроде Ключ-значение?
Ключ - Параметр, Значение - цена.
И при выборе забирать те, у которых есть совпадение
http://professorweb.ru/my/csha... /12_10.php
1
8 / 8 / 10
Регистрация: 16.10.2012
Сообщений: 523
26.03.2014, 08:19  [ТС]
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
Может тогда использовать Dictionary<TKey, TValue> что-то вроде Ключ-значение?
Ключ - Параметр, Значение - цена.
И при выборе забирать те, у которых есть совпадение
http://professorweb.ru/my/csha... /12_10.php
Уууууу, что-то новенькое, не встречался еще ни разу, может сделаете примерчик на основе моего решения?
0
Заблокирован
26.03.2014, 08:49
Я пока еще до колллекции не дошел в теории, но попробую тогда на выходных с ними разобраться на практике. Было бы идеально, сли бы вы дали список цен и параметров
0
8 / 8 / 10
Регистрация: 16.10.2012
Сообщений: 523
26.03.2014, 10:48  [ТС]
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
Я пока еще до колллекции не дошел в теории, но попробую тогда на выходных с ними разобраться на практике. Было бы идеально, сли бы вы дали список цен и параметров
Вот ссылочка на общую БД
https://drive.google.com/file/... sp=sharing
А вот теперь еще 1 вопрос, у меня ведь есть перевод цен по курсу, а курс меняется, что мне сделать, чтобы потом когда будет сделана программа можно было изменить курс?
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
26.03.2014, 17:01
Прошу прощения, вчера не смог ответить.
Сперва необходимо выполнить нормализацию БД:
- для каждого из комплектующих отдельная таблица. добавляем столбец-идентефикатор
- в таблице ноутбуков храним только Id комплектующих

возьмем для примера выбор Производителя + Видео
для производителей таблица Company со столбцами IdCompany, CompanyName
для видеокарт таблица Video со столбцами IdVideo, VideoName
для ноутбуков таблица Notebook со столбцами IdNote, NoteName, IdCompany, IdVideo - прочие столбцы сами добавите

2. В программе загружаем таблицы в DataSet ds
создаем комбобоксы для изготовителя cbCompany и видео cbVideo и DataGridView dgvNotebook для ноутбуков
3. создаем привязку данных:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
BindingSource bsCompany, bsVideo, bsNotebook;
Form_Load
{
    bsCompany = new BindingSource(ds, "Company");
    bsVideo = new BindingSource(ds, "Video");
    bsNotebook = new BindingSource(ds, "Notebook ");
    cbCompany.DisplayMember = "CompanyName";
    cbCompany.ValueMember = "IdCompany";
    cbCompany.DataSource = bsCompany;
    cbVideo.DisplayMember = "VideoName";
    cbCompany.ValueMember = "IdVideo";
    cbCompany.DataSource = bsVideo;
    dgvNotebook.DataSource = bsNotebook;
    bsVideo.CurrentItemChanged += new EventHandler(SetFilter);
    bsCompany.CurrentItemChanged += new EventHandler(SetFilter);
}
        void SetFilter(object sender, EventArgs e)
        {
              bsNotebook.Filter = string.Format("IdCompany = {0} and IdVideo={1}", cbCompany.SelectedValue, cbVideo.SelectedValue);
        }
Добавлено через 2 минуты
в таблице ноутбуков храним цену в одной валюте.
создаем таблицу курс валют, где указываем курс прочих валют относительно основной
стоимость в других валютах теперь легко вычисляется при обращении к таблице курса валют.
достаточно изменить курс валют в одной таблице и стоимость будет сразу изменена
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.03.2014, 17:01

Макрос для внесения данных из combobox на разные листы в таблицы в зависимости от выбранных значений
Люди добрые, приветствую вас!))) Мне нужна ваша помощь в решении одной проблемки! С макросами столкнулся первый раз и наверно единственный....

Макрос для внесения данных из combobox на разные листы в таблицы в зависимости от выбранных значений
Доброго дня всем!))) Уважаемые форумчане, мне нужна ваша помощь в решении одной проблемки! Для работы создал файл, для ведения причин...

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

Посчитать сумму выбранных строк двух разных таблиц
Каким образом можно посчитать сумму выбранных строк с двух разных таблиц DBGrid и вывести её в Edit?

Посчитать сумму входных параметров
def suma(*args): some code... print suma(1, 2, 3) # should be 6 print suma(4)(5, 6) # should be 15 print suma(7)(8)(9) #...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
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 и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru