Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 27.11.2011
Сообщений: 8
.NET 3.x

Добавление данных из ListBox в ListView с проверкой

20.02.2012, 01:24. Показов 1700. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, господа знатоки.

Есть Listview с колонками 1,2,3. Выглядит примерно так:
---
Название Количество Свойства
оранжевый 1 10000
Капуста 1 50000
Червяк 1 300
---

ListView заполняется из элементов типа ListBox, присутствующих на форме. Вот один из примеров такого ListBox:
---
капуста
морковь
червяк
дыня
...
---

Подразумеваемый механизм работы:
1. Тыкаем кнопку, относящуюся к ListBox. Выбранный элемент (SelectedItem), например "червяк" попадает в ListView. В ListBox у него видно только название "червяк", а "свойства" пользователю не видны.
2. Если в ListView уже есть такой item "червяк", то инфу из колонки #1 не меняем, в колонке #2 мы делаем ++, а в колонке #3 делаем текущий+добавляемый. Должно получиться так:
---
...
червяк 2 600
3. И, соответственно, если ListView нет элемента "червяк", то росто добавляем всё, что нужно в однократном размере.

Как бы это выглядело в коде? Пока не могу найти, как организовать все эти проверки (есть-нет элемента).
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.02.2012, 01:24
Ответы с готовыми решениями:

Настроить добавление/привязку данных между пунктом ListBox и строками ListView
День добрый. Есть форма, на ней кнопки, текст бокс, листбокс и листвиев. Настроенно добавление текста из текстбокса в листбокс,...

Добавление строк из listbox в listview
помогите разработать приложение «Магазин средств связи». Товар выбирается из элемента ListBox, который первоначально содержит 3 строки и...

Добавление данных в таблицу с проверкой на дубликаты
Добрый день. Просьба помочь. Есть бд, в которой есть перекрестный запрос Pick by zones. Данные из него посредством запуска запроса на...

6
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
20.02.2012, 01:36
А что это за объекты такие? Ну раз это может быть и червяк и капуста. Что за свойства есть у них? Я так понимаю это какой-то однотипный объект, который может содержать в себе информацию какую-то? Было 1300 червей и после инкремента стало 2600?

Добавлено через 25 секунд
Цитата Сообщение от Egel Посмотреть сообщение
делаем текущий+добавляемый
Не понял вообще.

Добавлено через 46 секунд
Ты не задумывался, что ты вкурсе о чём ты говоришь, а другие не вкурсе, надо описывать очень подробно. Так-то можно примерно сделать, что ты хочешь, но не факт что будет то, что ты ожидаешь.

Добавлено через 52 секунды
А если есть уже готовая форма, но ты не знаешь как организовать, то можно было бы выложить проект, в котором ты замутил эту форму.
0
0 / 0 / 0
Регистрация: 27.11.2011
Сообщений: 8
20.02.2012, 01:53  [ТС]
Цитата Сообщение от Casper-SC Посмотреть сообщение
А что это за объекты такие? Ну раз это может быть и червяк и капуста. Что за свойства есть у них? Я так понимаю это какой-то однотипный объект, который может содержать в себе информацию какую-то? Было 1300 червей и после инкремента стало 2600?

Тут не в объектах дело. Просто представим, что есть предмет "лопата" - первая колонка, вторая колонка "количество" - соответственно сколько лопат всего, третья колонка "свойства" - это, предположим, живучесть лопаты, т.е. "300 единиц живучести". Соответственно при добавлении новой лопаты инкремент в столбце 2 должен увеличиваться на 1 (добавили ещё одну лопату), а общая живучесть лопат должна складываться (300+300=600). Я в общем-то в примере это и показал. Было:
червяк 1 300
Стало
червяк 2 600

Цитата Сообщение от Casper-SC Посмотреть сообщение
Ты не задумывался, что ты вкурсе о чём ты говоришь, а другие не вкурсе, надо описывать очень подробно. Так-то можно примерно сделать, что ты хочешь, но не факт что будет то, что ты ожидаешь.

Не ругайте сильно, стараюсь как могу. Ещё дополню если потребуется.

Цитата Сообщение от Casper-SC Посмотреть сообщение
А если есть уже готовая форма, но ты не знаешь как организовать, то можно было бы выложить проект, в котором ты замутил эту форму.

"есть форма" - это я условно выразился. Форму сделаю, интересует скорее сам механизм.
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
20.02.2012, 02:04
Цитата Сообщение от Egel Посмотреть сообщение
Я в общем-то в примере это и показал
А мне показалось, что было 1300 червей и стало 2600, а свойства не указаны .
Цитата Сообщение от Egel Посмотреть сообщение
Тут не в объектах дело.
Думаю в них самых, не текст же гонять туда сюда. Просто не пойму, что это за объекты такие. Точнее придумать то можно, но знать бы что за умысел такой, что это вообще будет.
0
0 / 0 / 0
Регистрация: 27.11.2011
Сообщений: 8
20.02.2012, 02:14  [ТС]
Цитата Сообщение от Casper-SC Посмотреть сообщение
не текст же гонять туда сюда. Просто не пойму, что это за объекты такие. Точнее придумать то можно, но знать бы что за умысел такой, что это вообще будет.
Ага, понял. Это просто такая тренировка, называется "как из множества комплектующих собрать что-нибудь одно". Червяки и огурцы были взяты из ниоткуда. Но даже если вернуться к ним, то представьте объект "огород", в нём находятся объекты "морковь" - такое-то количество, червяк - столько-то, беседка - столько-то штук беседок и т. д. И у каждого из них есть какой-нибудь параметр, например "стойкость к ядерному удару". У моркови она 100 единиц, у червяка - 300 единиц. Это и есть те самые колонки. Потом я просто суммирую всё это и буду проводить дальнейшие опыты. Или, вот ещё придумал пример, компьютерная игрушка. Есть персонаж "червяк", есть их количество, и есть живучесть..
0
 Аватар для DimanRu
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
20.02.2012, 09:27
Уже становиться понятнее... Создай класс, "предметы"(не не подходит), "животные"(тоже не подходит), "подопытные"(во, то что нужно) и в классе сделай поля для свойств, имен, и количества. Каждый экземпляр будет иметь свои "признаки" скажем так)))
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
20.02.2012, 17:52
Возможно не лучший вариант, но как-то так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    class IndeterminateObject
    {
        public IndeterminateObject()
        {
            Name = string.Empty;
            Property = 0;
        }
 
        public IndeterminateObject(string name, int property)
        {
            Name = name;
            Property = property;
        }
 
        public string Name { get; set; }
        public int Property { get; set; }
    }
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
53
54
55
56
57
58
    public partial class Form1 : Form
    {
        List<IndeterminateObject> _someObjects;
 
        public Form1()
        {
            InitializeComponent();
 
            _someObjects = new List<IndeterminateObject>()
            {
                new IndeterminateObject("Капуста", 300),
                new IndeterminateObject("Лопата", 1200),
                new IndeterminateObject("Дыня", 220)
            };
            objecstListBox.DisplayMember = "Name";
            objecstListBox.DataSource = _someObjects;
        }
 
        private void ToListViewButton_Click(object sender, EventArgs e)
        {
            AddToListView((IndeterminateObject)objecstListBox.SelectedItem);
        }
 
        private void AddToListView(IndeterminateObject obj)
        {
            foreach (ListViewItem item in detailedObjListView.Items)
            {
                if (item.Text == obj.Name)
                {
                    UpdateListViewItem(item, obj);
                    return;
                }
            }
            UpdateListViewItem(detailedObjListView.Items.Add(string.Empty), obj);
        }
 
        private void UpdateListViewItem(ListViewItem item, IndeterminateObject obj)
        {
            List<IndeterminateObject> listObj = null;
            if (item.Tag != null)
            {
                listObj = (List<IndeterminateObject>)item.Tag;
                listObj.Add(obj);
                item.Text = obj.Name;
                item.SubItems[1].Text = listObj.Count.ToString();
                item.SubItems[2].Text = (obj.Property * listObj.Count).ToString();
            }
            else
            {
                listObj = new List<IndeterminateObject>();
                listObj.Add(obj);
                item.Tag = listObj;
                item.Text = obj.Name;
                item.SubItems.Add(listObj.Count.ToString());
                item.SubItems.Add((obj.Property * listObj.Count).ToString());
            }
        }
    }
List<T> использую, потому-что ну как-то нелогично мне кажется, чтобы объект хранил кол-во себя. Да и как потом удалять объекты из списка? А с List<T> всё гуд, можно и удалять и прибавлять и т.д.
Вложения
Тип файла: zip WinForms_FromListBoxToListView.zip (29.4 Кб, 8 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.02.2012, 17:52
Помогаю со студенческими работами здесь

Добавление записи в файл с проверкой корректности данных
В текстовом файле находятся записи о книгах в библиотеке. В каждой строке записана информация об одной книге: ФИО автора, название, год...

Добавление данных в ListView
Здравствуйте, не могу найти решение проблемы, добавляю записи в listview, а они отображаются только после переворота экрана. Как это решить?

Добавление данных в ListView
Вес привет. Написал приложение, которые считывает данные, добавляет их в список, а потом со списка читает и добавляет в ListView. Но как...

Многострочное добавление данных из TextBox в ListView
Привет всем. У меня такая ситуация: Имеются две формы на одной ListView, а на другой элементы textbox При отправке данных в ListView...

Добавление данных в три колонки ListView
Здравствуйте, благородные доны. Чувствую, что проблема пустяковая, но переклинило и не могу понять, как её решить. Как добавить в ListView...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
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