Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
My C# lvl is bad
1 / 1 / 0
Регистрация: 04.01.2023
Сообщений: 159

Поиск и добавление данных в Listbox

02.07.2023, 10:56. Показов 1662. Ответов 44
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день товарищи! Сделал тестовую форму, чтобы отработать все функции и посмотреть поведение програмки, но функция поиска(который сверху) и добавления(из фильтра) не работает, вернее работает, но только тогда, когда в Listbox изначально были данные. Но я беру данные из файла и следовательно добавляю в файл тоже(пока не сделал).
Код прикрепляю ниже:
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            listcoll.Clear();
            foreach(string str in listBox1.Items)
            {
                listcoll.Add(str);
                //textBox_Search.CharacterCasing = CharacterCasing.Lower;
            }
        }
 
        private void label1_Click(object sender, EventArgs e)
        {
            this.Close();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            //this.BackgroundImage = Properties.Resources.cosmos;
        }
 
        List<string> listcoll = new List<string>();
        private void textBox_Search_TextChanged(object sender, EventArgs e)
        {
            if(string.IsNullOrEmpty(textBox_Search.Text) == false)
            {
                listBox1.Items.Clear();
                foreach(string str in listcoll)
                {
                    if (str.StartsWith(textBox_Search.Text))
                    {
                        listBox1.Items.Add(str);
                    }
                }
            }
            else if(textBox_Search.Text == "")
            {
                listBox1.Items.Clear();
                foreach (string str in listcoll)
                {
                    listBox1.Items.Add(str);
                }
            }
        }
 
        private void textBox_Search_KeyPress(object sender, KeyPressEventArgs e)
        {
            char l = e.KeyChar;
            if ((l < 'А' || l > 'я') && l != '\b' && l != 32) 
            {
                e.Handled = true;
            }
        }
 
        private void radioButton_Filtr_CheckedChanged(object sender, EventArgs e)
        {
            if(radioButton_Filtr.Checked == true)
            {
                checkBox_Surname.Enabled = true;
                checkBox_Name.Enabled = true;
                checkBox_Patronymic.Enabled = true;
                checkBox_Plus.Enabled = true;
                
            }
        }
 
        private void textBox_Surname_KeyPress(object sender, KeyPressEventArgs e)
        {
            char l = e.KeyChar;
            if ((l < 'А' || l > 'я') && l != '\b' && l != 32) // Заглавные/строчные буквы русского алфавита, клавиша backspace, клавиша space
            {
                e.Handled = true;
            }
        }
 
        private void textBox_Name_KeyPress(object sender, KeyPressEventArgs e)
        {
            char l = e.KeyChar;
            if ((l < 'А' || l > 'я') && l != '\b' && l != 32) // Заглавные/строчные буквы русского алфавита, клавиша backspace, клавиша space
            {
                e.Handled = true;
            }
        }
 
        
 
        private void richTextBox_Plus_TextChanged(object sender, EventArgs e)
        {
 
        }
 
        private void richTextBox_Plus_KeyPress(object sender, KeyPressEventArgs e)
        {
            char l = e.KeyChar;
            if ((l < 'А' || l > 'я') && l != '\b' && l != 32) // Заглавные/строчные буквы русского алфавита, клавиша backspace, клавиша space
            {
                e.Handled = true;
            }
        }
 
        private void button_Clear_Click(object sender, EventArgs e)
        {
            textBox_Name.Clear();
            textBox_Surname.Clear();
            textBox_Patronymic.Clear();
            richTextBox_Plus.Clear();
            checkBox_Name.Checked = false;
            checkBox_Surname.Checked = false;
            checkBox_Patronymic.Checked = false;
            checkBox_Plus.Checked = false;
            radioButton_Filtr.Checked = false;
            checkBox_Surname.Enabled = false;
            checkBox_Name.Enabled = false;
            checkBox_Patronymic.Enabled = false;
            checkBox_Plus.Enabled = false;
            textBox_Surname.Enabled = false;
            textBox_Name.Enabled = false;
            textBox_Patronymic.Enabled = false;
            richTextBox_Plus.Enabled = false;
        }
 
        private void checkBox_Surname_CheckedChanged(object sender, EventArgs e)
        {
            if(checkBox_Surname.Checked == true)
            {
                textBox_Surname.Enabled = true;
            }
            else
            {
                textBox_Surname.Enabled = false;
            }
        }
 
        private void checkBox_Name_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox_Name.Checked == true)
            {
                textBox_Name.Enabled = true;
            }
            else
            {
                textBox_Name.Enabled = false;
            }
        }
 
        private void checkBox_Plus_CheckedChanged(object sender, EventArgs e)
        {
            if(checkBox_Plus.Checked == true)
            {
                richTextBox_Plus.Enabled = true;
            }
        }
 
        private void button_ClearSearch_Click(object sender, EventArgs e)
        {
            textBox_Search.Clear();
        }
 
        private void button_Add_Click(object sender, EventArgs e)
        {
            
            if (richTextBox_Plus.Text != "")
            {
                listBox1.Items.Add(richTextBox_Plus.Text);
            }
            else
            {
                listBox1.Items.Add("OK");
            }
        }
 
        
 
        private void button3_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
        }
 
        private void button_Search_Click(object sender, EventArgs e)
        {
 
        }
 
        private void checkBox_Patronymic_CheckedChanged_1(object sender, EventArgs e)
        {
            if (checkBox_Patronymic.Checked == true)
            {
                textBox_Patronymic.Enabled = true;
            }
            else
            {
                textBox_Patronymic.Enabled = false;
            }
        }
 
        private void textBox_Patronymic_KeyPress(object sender, KeyPressEventArgs e)
        {
            char l = e.KeyChar;
            if ((l < 'А' || l > 'я') && l != '\b' && l != 32) // Заглавные/строчные буквы русского алфавита, клавиша backspace, клавиша space
            {
                e.Handled = true;
            }
        }
    }
Сама форма:
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.07.2023, 10:56
Ответы с готовыми решениями:

Поиск фильма через Апи и добавление ее в Listbox
Здорово всем! Задание таково: Прога для поиска фильмов через OMDB API. Как то написал ее но не могу правильно организовать тот...

Добавление данных в ListBox из 2-ух DataGridView
Нужно внести данные в один ListBox(LB) из 2-ух разных DataGridView(DGV).С моим кодом данные вносятся неправильно(должны вносится по схеме...

Добавление данных из массива в ListBox
Доброго времени суток! Прошу помощи в следующем задании: &quot;На Form3 поместить три поля Edit1, Edit2, Edit3 для введения данных. Ввести...

44
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3461 / 2782 / 575
Регистрация: 04.09.2018
Сообщений: 8,744
Записей в блоге: 3
02.07.2023, 12:29
Студворк — интернет-сервис помощи студентам
Фильтр тут применим только для того, чтобы искать только Имя, только Фамилию или Отчество. Больше он тут ничего полезного не делает.

Добавлено через 1 минуту
Цитата Сообщение от PrOgGeR_nA_5 Посмотреть сообщение
Но на вводе ФИО я и застрял.
Застрял еще раньше, на этапе обдумывания логики работы программы...
Логика сейчас ни к черту.
0
My C# lvl is bad
1 / 1 / 0
Регистрация: 04.01.2023
Сообщений: 159
02.07.2023, 12:34  [ТС]
Цитата Сообщение от wizard41 Посмотреть сообщение
Имя, только Фамилию или Отчество. Больше он тут ничего полезного не делает.
Ну я добавлю еще поиск по дате рождения и тогда уже будет делать много полезного, а пока он действительно ничего полезного не делает

Добавлено через 1 минуту
Цитата Сообщение от wizard41 Посмотреть сообщение
Застрял еще раньше, на этапе обдумывания логики работы программы...
Логика сейчас ни к черту.
в голове всё было легко. Тем более это не основная форма, только для теста её создал
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3461 / 2782 / 575
Регистрация: 04.09.2018
Сообщений: 8,744
Записей в блоге: 3
02.07.2023, 12:35
Или можно так: в верхнем поле вводится Город, в листбокс попадают все из этого города.
А если включен фильтр, допустим, по Имени, то в листбокс уже летят все из этого города с этим именем... Только так этот фильтр может быть полезен.
0
My C# lvl is bad
1 / 1 / 0
Регистрация: 04.01.2023
Сообщений: 159
02.07.2023, 12:37  [ТС]
Цитата Сообщение от wizard41 Посмотреть сообщение
Или можно так: в верхнем поле вводится Город, в листбокс попадают все из этого города.
Цитата Сообщение от wizard41 Посмотреть сообщение
А если включен фильтр, допустим, по Имени, то в листбокс уже летят все из этого города с этим именем... Только так этот фильтр может быть полезен.
Спасибо, вот это действительно полезный совет.
Только вот привязать айтемы с листбокса к текстбоксу не получается
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3461 / 2782 / 575
Регистрация: 04.09.2018
Сообщений: 8,744
Записей в блоге: 3
02.07.2023, 12:38
Т.к. если верхний поиск типа "Общий", то какой смысл в фильтрах, если в общем поиске можно найти все что нужно.
0
My C# lvl is bad
1 / 1 / 0
Регистрация: 04.01.2023
Сообщений: 159
02.07.2023, 12:38  [ТС]
Цитата Сообщение от wizard41 Посмотреть сообщение
Т.к. если верхний поиск типа "Общий", то какой смысл в фильтрах, если в общем поиске можно найти все что нужно.
уберу его значит
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3461 / 2782 / 575
Регистрация: 04.09.2018
Сообщений: 8,744
Записей в блоге: 3
02.07.2023, 12:40
Цитата Сообщение от PrOgGeR_nA_5 Посмотреть сообщение
айтемы с листбокса к текстбоксу
Тебе надо определится, что именно будет выводится в листБокс (какая часть информации о человеке). ФИО, или ФИО + д.р. или ФИО + город... и т.п.
А тычком по найденному челу в списке открывается другое окно с полной информацией о нем...
0
My C# lvl is bad
1 / 1 / 0
Регистрация: 04.01.2023
Сообщений: 159
02.07.2023, 12:41  [ТС]
Цитата Сообщение от wizard41 Посмотреть сообщение
А тычком по найденному челу в списке открывается другое окно с полной информацией о нем
типо сделать отдельную форму, которая будет открываться тычком по найденному челу?
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3461 / 2782 / 575
Регистрация: 04.09.2018
Сообщений: 8,744
Записей в блоге: 3
02.07.2023, 12:44
Цитата Сообщение от PrOgGeR_nA_5 Посмотреть сообщение
тычком по найденному челу?
Можно так, а можно в этом же окне сделать панель свойств выбранного чела. Как угодно. На что фантазии хватит.
0
My C# lvl is bad
1 / 1 / 0
Регистрация: 04.01.2023
Сообщений: 159
02.07.2023, 12:46  [ТС]
Цитата Сообщение от wizard41 Посмотреть сообщение
а можно в этом же окне сделать панель свойств выбранного чела
слишком трудно понять мне, как это сделать
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3461 / 2782 / 575
Регистрация: 04.09.2018
Сообщений: 8,744
Записей в блоге: 3
02.07.2023, 12:49
Смысл поиска сейчас в чем заключается? Просто вывести найденного(ых) в листбокс и все?
0
My C# lvl is bad
1 / 1 / 0
Регистрация: 04.01.2023
Сообщений: 159
02.07.2023, 12:53  [ТС]
Цитата Сообщение от wizard41 Посмотреть сообщение
Просто вывести найденного(ых) в листбокс и все?
Сейчас - да
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3461 / 2782 / 575
Регистрация: 04.09.2018
Сообщений: 8,744
Записей в блоге: 3
02.07.2023, 12:59
Цитата Сообщение от PrOgGeR_nA_5 Посмотреть сообщение
Сейчас - да
Тогда начни с того:
- поменяй контролы на соответсвующие
- верхнее поле поиска сделай по Городу
- создай класс People с нужными свойствами.
0
My C# lvl is bad
1 / 1 / 0
Регистрация: 04.01.2023
Сообщений: 159
02.07.2023, 13:02  [ТС]
Цитата Сообщение от wizard41 Посмотреть сообщение
поменяй контролы на соответсвующие
radiobutton заменить на чекбокк, а чекбоксы на радиобатон?
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3461 / 2782 / 575
Регистрация: 04.09.2018
Сообщений: 8,744
Записей в блоге: 3
02.07.2023, 13:07
Цитата Сообщение от PrOgGeR_nA_5 Посмотреть сообщение
radiobutton заменить на чекбокк, а чекбоксы на радиобатон?
Да.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3461 / 2782 / 575
Регистрация: 04.09.2018
Сообщений: 8,744
Записей в блоге: 3
02.07.2023, 17:17
PrOgGeR_nA_5, вот накидал такой вариант, в качестве идеи:
Картинки

Приложение прикрепил, поиграйся, посмотри как работает.
(Добавление людей не сделано).
Вложения
Тип файла: 7z WindowsFormsFindPeoples Demo.7z (296.9 Кб, 16 просмотров)
1
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3461 / 2782 / 575
Регистрация: 04.09.2018
Сообщений: 8,744
Записей в блоге: 3
02.07.2023, 20:43
Лучший ответ Сообщение было отмечено PrOgGeR_nA_5 как решение

Решение

Добавление нового пипла:
1
2296 / 1612 / 400
Регистрация: 26.06.2017
Сообщений: 4,774
Записей в блоге: 1
02.07.2023, 21:46
В одной ERP-системе видел такое решение: в окне поиска текстбокс и комбобокс, в текстбокс вводится поисковый запрос, а в комбобоксе выбирается поле (столбец), по которому будет выполнятся поиск. Кнопка "поиск" неактивна пока не заполнены оба элемента управления. Это хорошо и удобно работает для данных представленных таблично. У ТСа очень похожий случай. Т.е. набрав "Москва" для поиска и выбрав, например, поле для поиска Фамилия вы с большой долей вероятности ничего не найдёте, но выбрав поле Город (Адрес) поиск даст релевантные результаты. Такая система поиска достаточно легко реализуется.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3461 / 2782 / 575
Регистрация: 04.09.2018
Сообщений: 8,744
Записей в блоге: 3
02.07.2023, 22:11
Цитата Сообщение от Uswer Посмотреть сообщение
В одной ERP-системе видел такое решение:
Ну это решение не отличается особой оригинальностью, вроде. Старое как мир). Нынче в моде авто-поиск сразу по всем полям, как ты заставил меня делать в проекте с номерами телефонов
Вот че я сегодня случайно узнал, так узнал...
Если в проекте форм написать такое:
C#
1
2
3
4
    private void Button1_Click(object sender, EventArgs e)
    {
        Console.WriteLine("WOW!!!!! It's fake -:)");
    }
то это вылезет в окне вывода:

А я всегда для этих целей Debug.WriteLine доставал... О как.
0
2296 / 1612 / 400
Регистрация: 26.06.2017
Сообщений: 4,774
Записей в блоге: 1
03.07.2023, 09:09
Цитата Сообщение от wizard41 Посмотреть сообщение
Вот че я сегодня случайно узнал
Вот это новость так новость
Цитата Сообщение от wizard41 Посмотреть сообщение
как ты заставил меня делать
Я просто предложил...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.07.2023, 09:09

Добавление данных из текстового файла в listbox
Проблема заключается в том, что у меня открывается файл через menu но, я не знаю как передать его в listbox помогите пожалуйста

Добавление данных из ListBox в ListView с проверкой
Здравствуйте, господа знатоки. Есть Listview с колонками 1,2,3. Выглядит примерно так: --- Название Количество Свойства ...

Добавление в ListBox огромного количества данных
Как реализовать добавление в listbox огромного количества данных? Сейчас вылетает ошибка памяти.

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

Сделать проверку на добавление данных в listbox
На форме listbox, текстовое поле, кнопка по кнопке в listbox добавляется тест, введенный в текстовое поле: ...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru