Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
.NET 6

Формирование списка combobox

02.12.2023, 20:35. Показов 2944. Ответов 55
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется папка в решении проекта "Detali", в ней имеется большой перечень папок с именем каждой детали. В каждой папке есть файл *.cs с идентичным названием, как и сама папка. Эти названия должны будут использоваться как ссылочные.

Как сформировать список в combobox из наименований деталей (наименование каждой папки в папке Detali), которые должны будут содержаться в виде некого параметра/мени в файлах *.cs каждой папки для отображения в combobox.

Плюс еще при выборе каждого пункта в combobox должна будет отображаться картинка в picturebox располагающаяся в соответствующей папке, от которой идет ссылка на выбираемый пункт в combobox.

То есть, что мне нужно прописать для сформирования списка в combobox, и отображения картинки в picturebox. И конструкцию, которую мне нужно будет прописать в каждом файле *.cs для формирования отображаемого имени пункта в combobox.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.12.2023, 20:35
Ответы с готовыми решениями:

Работа с элементами ComboBox в DataGridView: формирование списка в зависимости от условия
Приветствую. Снова нужна ваша профессиональная помощь. Дата грид. Допустим есть 2 столбца. Один текстовый, второй - комбобокс. Итак....

Формирование ComboBox из ini
Здравствуйте! Имеется форма, на форме combobox. Имеется файл ini: $Number1=1 $Name1=TEST $Time1= $Class1=

Формирование Combobox по DataGridView - ошибка NullReferenceException was unhandled
Здравствуйте. Суть проблемы в следующем. Имеется DataGridView, в который через DataTable загружается содержимое XML-файла, в...

55
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
04.12.2023, 17:46  [ТС]
Студворк — интернет-сервис помощи студентам
OwenGlendower, Andrey-MSK,

Нажимаем "создать новый заказ". Появляются все формы отображенные на скрине
1. Выбираем изделие
2. Появляется блок (индивидуальный набор lable и textbox для каждого пункта), и соответствующая картинка.
3. Заполняем появившиеся textbox
4. Нажимаем "добавить".
5. Введенные данные применяются, перерабатываются системой, и вставляется пункт в одну из таблиц (в зависимости от категории выбираемого пункта в п.1)
вот вопрос касается п.2
Миниатюры
Формирование списка combobox  
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
05.12.2023, 14:44
xamelione25, 1) в Обозревателе Решений видно очень много папок с деталями. Сколько их всего? В каждой папке User Control находится/планируется?

2) Вы упоминали что у разных деталей разные признаки. Поэтому я и предложил ранее решение с User Control, но на скриншоте я вижу только два признака - площадь и соединение. Сколько на самом деле возможных признаков у деталей? Насколько сильно они пересекаются по этим признакам?
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
05.12.2023, 15:17  [ТС]
OwenGlendower,
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Сколько их всего?
104

Цитата Сообщение от OwenGlendower Посмотреть сообщение
В каждой папке User Control находится/планируется?
не понял вопроса

Цитата Сообщение от OwenGlendower Посмотреть сообщение
но на скриншоте я вижу только два признака - площадь и соединение. Сколько на самом деле возможных признаков у деталей? Насколько сильно они пересекаются по этим признакам?
Наименование у деталей разные (маркировка).
---Площадь вычисляется в соответствии с введенными пользователем данными в тот индивидуальный набор textbox, которые я планировал реализовать индивидуально на каждой подформе. То есть для каждой детали своя формула итп.
---Соединение индивидуально, оно из узкого перечня будет выбираться пользователем.
---Примечание вводится пользователем
---Аналогично и во второй таблице
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
05.12.2023, 16:45
Цитата Сообщение от xamelione25 Посмотреть сообщение
лощадь вычисляется в соответствии с введенными пользователем данными в тот индивидуальный набор textbox, которые я планировал реализовать индивидуально на каждой подформе. То есть для каждой детали своя формула итп.
Данные для этих формул разные или одинаковые для разных деталей?

Цитата Сообщение от xamelione25 Посмотреть сообщение
Цитата Сообщение от OwenGlendower Посмотреть сообщение
В каждой папке User Control находится/планируется?
не понял вопроса
Вы показали скриншот одного из классов из папки Detali. Этот класс наследуется от UserControl. В остальных 103 папках тоже классы унаследованные от UserControl?
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
05.12.2023, 20:54  [ТС]
OwenGlendower,
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Данные для этих формул разные или одинаковые для разных деталей?
Конечно же каждой детали свои, потому что у одних, допустим присутствует только длина и диаметр, у других диаметр радиус и угол ... итд ... у некоторых должна будет быть еще checkBox для активации некоторых неактивных полей... итд
Цитата Сообщение от OwenGlendower Посмотреть сообщение
В остальных 103 папках тоже классы унаследованные от UserControl?
Да, они все должны быть устроены по принципу case.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
05.12.2023, 22:27
Цитата Сообщение от xamelione25 Посмотреть сообщение
Конечно же каждой детали свои, потому что у одних, допустим присутствует только длина и диаметр, у других диаметр радиус и угол ... итд ... у некоторых должна будет быть еще checkBox для активации некоторых неактивных полей... итд
Подробнее можно? Интересуюсь потому что есть идея по упрощению кода. Вместо кучи User Control сделать модели для описания каждой детали, там хранить наименование, изображение. Формула там же будет. Далее на основе модели будет на лету генерироваться интерфейс для редактирования информации. Без требования "у некоторых должна будет быть еще checkBox для активации некоторых неактивных полей" это несложно сделать.

0) Переделывать код еще не поздно?
1) Сколько деталей с простым UI? Таким где просто вводятся данные.
2) Сколько деталей с "сложным" UI? Как, например, "checkBox для активации".
3) Какие еще "сложные" сценарии есть для UI?

P.S. Решение с атрибутами посмотрели?
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
05.12.2023, 23:07  [ТС]
OwenGlendower,
Цитата Сообщение от OwenGlendower Посмотреть сообщение
0) Переделывать код еще не поздно?
да нет я от части тот сотрудник, по воле которого и делается эта программа, а я на больничном)))

Цитата Сообщение от OwenGlendower Посмотреть сообщение
1) Сколько деталей с простым UI? Таким где просто вводятся данные.
2) Сколько деталей с "сложным" UI? Как, например, "checkBox для активации".
Если там простые детали и будут (без галок), то их будет до 15шт. А вообще там если и будет checkBox то он будет активировать/деактивировать состояние аналогичных пар lable и textbox. Там он чего-то иного не должен будет ктивировать

-------------------------
Повторюсь одна часть деталей будет иметь индекс 1, другая 2. Для деления деталей по таблицам (которые справа) при добавлении детали в базу

Забыл в первую таблицу еще добавить колонку "толщина металла".

Единственное нужно будет (но это на поооотом, на закуску) возможно учесть сейчас это нужно. Этот же заказ должен будет выводиться/сохраняться в файл с индивидуальным расширением. Ну аналогично же и открываться должен, то есть считываться данные должны будут ... извлекаться и заполняться обратным ходом (надеюсь вы поняли смысл).
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
07.12.2023, 17:37  [ТС]
OwenGlendower, подскажите, а как вообще сослаться на параметр в файле в проекте. Если я имею только путь к файлу в форме переменной типа string
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
07.12.2023, 18:14
Цитата Сообщение от xamelione25 Посмотреть сообщение
как вообще сослаться на параметр в файле в проекте. Если я имею только путь к файлу в форме переменной типа string
Не надо так делать. Вам придется распространять исходный код вместе с exe файлом. Используйте решение с атрибутами. Я уже два раза интересовался смотрели ли вы его. Очевидно нет.

Добавлено через 17 минут
Или если атрибуты не подойдут - у них есть свои ограничения, то можно объявить в каждом классе константу или свойство и получать значение через рефлексию.
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
07.12.2023, 18:39  [ТС]
OwenGlendower,
Цитата Сообщение от OwenGlendower Посмотреть сообщение
то можно объявить в каждом классе константу или свойство и получать значение через рефлексию.
ну вот я что-то похожее и хотел ...
в каждом файле прописать некий параметр (с одинаковым именем), и потом наполнять список
C#
1
ComboBox1.Items.Add(nazvanie_detali_iz_formi);
только я не сильно понимаю как это
Цитата Сообщение от OwenGlendower Посмотреть сообщение
через рефлексию
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
08.12.2023, 00:40
xamelione25, рефлексия это механизм для получения информации о типах на этапе исполнения. Пример:
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
static class Program
{
    static void Main()
    {
        var details =
            // Получаем все типы из нашей сборки
            typeof(Program).Assembly.GetTypes()
            // Отбираем только типы чъе имя начинается с Detail
            .Where(t => t.Name.StartsWith("Detail"))
            // Получаем значение поля с именем DetailName (константа это тоже поле с точки зрения CLR)
            .Select(t => t.GetField("DetailName").GetValue(null));
        foreach (var name in details)
        {
            Console.WriteLine(name);
        } 
    }
}
 
class Detail1
{
    public const string DetailName = "Деталь №1";
}
 
class Detail2
{
    public const string DetailName = "Деталь №2";
}
Такая программа выведет на экран
Code
1
2
Деталь №1
Деталь №2
Фишка в том что если добавить или удалить класс "детали", то вывод программы изменится.
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
08.12.2023, 13:46  [ТС]
OwenGlendower, OwenGlendower, OwenGlendower, OwenGlendower, OwenGlendower, OwenGlendower, OwenGlendower, OwenGlendower,
Цитата Сообщение от OwenGlendower Посмотреть сообщение
/ Получаем все типы из нашей сборки
Цитата Сообщение от OwenGlendower Посмотреть сообщение
/ Получаем значение поля с именем DetailName (константа это тоже поле с точки зрения CLR)
это относительно всего проекта, или рассматриваемой формы???

Цитата Сообщение от OwenGlendower Посмотреть сообщение
class Detail1
{
    public const string DetailName = "Деталь №1";
}
class Detail2
{
    public const string DetailName = "Деталь №2";
}
и эти классы можно в каждой отдельной форме прописать, а потом ссылаться на них?
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
08.12.2023, 14:00
Цитата Сообщение от xamelione25 Посмотреть сообщение
это относительно всего проекта, или рассматриваемой формы???
Всего проекта. Но тут может быть любая логика. Например, в моем примере типы ищутся по имени. Но можно искать по пространству имен, по базовому типу, реализованному интерфейсу.
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
08.12.2023, 14:03  [ТС]
OwenGlendower, то есть вы имеете ввиду тут и ссылаться на каждый файл не нужно? Или ...?
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
08.12.2023, 14:05
xamelione25, вы же видите код. Нет, не нужно. Код работает с типами. Файлы с исходным кодом для этого не требуются.
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
08.12.2023, 14:13  [ТС]
OwenGlendower, хорошо, Я понял что не нужно, но если я хотел все равно в каждом файле для детали сделать индивидуальный набор элементов на форме ... И туда же в форму втюлить параметр для отображения ... Можно ли в таком случае обойтись без путей ... Я насколько понимаю можно ....потому что параметр один и тот же будет по наименованию и он мне выложит все эти параметры в список... Но тогда как мне ссылаться на выбираемый пункт в combobox, для дальнейшего отображения нужной мне компановки...???
0
 Аватар для Andrey-MSK
3354 / 2240 / 388
Регистрация: 14.08.2018
Сообщений: 7,575
Записей в блоге: 4
08.12.2023, 14:19

Не по теме:

У меня складывается впечатление, что ТС хочет написать свою СУБД с только ему понятными функциями...



Добавлено через 2 минуты
xamelione25, У вас прям у всех 150+ типах будет разное количество свойств с разными типами данных? Или всё же их, в глобальном смысле, будет всего 5 разновидностей?
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
08.12.2023, 14:25  [ТС]
Andrey-MSK, считайте что у всех разное ... Потому что я хотел туда вставить и формулу для нахождения площади поверхности объемеой фигуры ... Для каждой фигуры формула индивидуальна!
А геометрические параметры будут использоваться только диаметр, длины сторон, угол... Только набор этих параметров для каждой фигуры будет свой...+ толщина металла
0
 Аватар для Andrey-MSK
3354 / 2240 / 388
Регистрация: 14.08.2018
Сообщений: 7,575
Записей в блоге: 4
08.12.2023, 14:33
xamelione25, Я так понял что список меняться не будет. Он всегда будет 150 деталей и всё?
Если так, то
1. Делаете 150 UserControl - в каждом пишете что нужно, делаете набор элементов, логику и т.д.
2. Делаете список всех своих деталей статитчным, создаёте прямо в коде - myList.Add("Деталь №149"), и выводите его куда надо. Вместо списка можно использовать словарь, ключом которого будет тип нужного UC. При выборе элемента списка подгружается нужный UC и работаете в нём.

Или я опять что-то не так понял...
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
08.12.2023, 14:37
Цитата Сообщение от xamelione25 Посмотреть сообщение
Можно ли в таком случае обойтись без путей
Не просто можно, но и нужно. Каждый раз когда вам придет в голову читать что-то из cs файлов можете сразу браковать эту идею.

Цитата Сообщение от xamelione25 Посмотреть сообщение
Но тогда как мне ссылаться на выбираемый пункт в combobox, для дальнейшего отображения нужной мне компановки...???
Я уже показывал как:
https://www.cyberforum.ru/post17132275.html
https://www.cyberforum.ru/post17137473.html

Цитата Сообщение от xamelione25 Посмотреть сообщение
Для каждой фигуры формула индивидуальна!
У вас спрашивали про свойства, а не формулу.

Цитата Сообщение от xamelione25 Посмотреть сообщение
А геометрические параметры будут использоваться только диаметр, длины сторон, угол... Только набор этих параметров для каждой фигуры будет свой...+ толщина металла
Так значит набор признаков очень короткий. Тут в самом деле можно сделать БД с описанием деталей. Но у меня была другая идея - описать модели для каждой детали и генерировать UI для редактирования с помощью рефлексии.

xamelione25, приведите пожалуйста примеры нескольких деталей. Для каждой из них интересует список свойств и формула.

Добавлено через 44 секунды
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
Делаете 150 UserControl
Лично я бы стремился избежать такого большого количества классов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.12.2023, 14:37
Помогаю со студенческими работами здесь

Формирование списка в потоке
Добрый день! Есть у меня задача по формированию списка. Цель данной задачи попрактиковаться с обработкой и манипулированием списков....

Формирование списка вывода новостей
Всем привет. Я недавно начл изучать asp.net. И вот сталкнулся с проблемой, что я не могу создать страницу с выводом на ней всех новостей....

Формирование списка, в котором, если элементы заданного списка не образуют уменьшающейся последовательности
Здраствуйте , помогите Используя генератор случайных чисел, заполните список элементами целыми положительными и отрицательными...

Формирование списка с остатками от деления целых чисел из исходного списка на заданное число N
люди помогите пожалуйста!!! Формирование списка с остатками от деления целых чисел из исходного списка на заданное число N.

Формирование нового списка из четных элементов заданного списка
Здравствуйте,помогите пожалуйста. Написать программу формирования нового списка из четных элементов заданного списка


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru