Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/41: Рейтинг темы: голосов - 41, средняя оценка - 4.80
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 183

Отметить в CheckedListBox строки, пришедшие по запросу

07.03.2012, 11:58. Показов 8694. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Помогите разобраться!

Выполняются тризапроса:

1) возвращает одну колонку и n-oe кол-во строк, по типу:
Имя
Name1
Name2
Name3

Колонка имя записывается в checklistbox
C#
1
2
3
4
5
read = comm.ExecuteReader();
            while (read.Read())
            {
                checkedListBox1.Items.Add(read[1].ToString());
            }
Далее формируется запрос, получающий строку
типа 1;2;3;4 и записываю в строковую переменную, после чего разбиваю на отдельные значения и записываю полученные данные в новую строку в другом формате

C#
1
2
3
4
5
6
7
read = comm.ExecuteReader();
            while (read.Read())
            {
                stroka=read[0].ToString();
            }
string[] new_stroka= stroka.Split(';');
string new_stroka2 = string.Format(string.Join(",",new_stroka));
В итоге получаю строку типа new_stroka2 = 1,2,3,4

И с помощью неё формирую запрос, который возвращает
определённые Name из первого запроса (но не все);

И вот собственно вопрос, необходимо, что бы имена в checklistbox-е, совпавшие с именами полученными в последнем запросе, автоматически отмечались как выбранные
Как?

Заранее спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.03.2012, 11:58
Ответы с готовыми решениями:

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

Программно отметить пункт в CheckedListBox
Привет всем, мне нужна помощь. Язык С# мне надо, что бы при высвечивании надписи "правильно" в CheckedListBox помечался...

Отметить checkedListBox только элементы которые в массиве
Отметить checkedListBox только элементы которые в массиве. Смотрите у меня есть массив имен процессов: string enabledprocess = {...

5
56 / 56 / 10
Регистрация: 27.12.2011
Сообщений: 141
07.03.2012, 12:10
C#
1
2
3
4
5
6
7
8
for(int i=0; i< checkedListBox1.Items.Count; i++)
{
 if(checkedListBox1.Items[i].ToString() == "некая строка")
    {
      checkedListBox1.SetItemChecked(i, true);
    }
 
}
0
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 183
07.03.2012, 14:07  [ТС]
Спасибо большое!
Но как сравнить данные с определенной строкой я знаю, проблема заключается именно в том, что кол-во строк и их наполнение заранее не известно, т.е. необходимо сравнить
ВСЕ значение из checklistbox-а со ВСЕМИ значениями из ListBox-а, и в случае совпадения отметить совпавший элемент в checklistbox-е, у меня получается сравнить все эелементы checklistbox-а но только с определенным элементом ListBox-а.

П.С. сравнивать именно с listbox-ом не категорично, сойдет что угодно, куда можно записать массив строк.

Заранее спасибо!

Добавлено через 6 минут
Попробовал сделать вот так
C#
1
2
3
4
5
6
7
8
9
10
11
while (read3.Read())
            {
                for (int i = 0; i == checkedListBox1.Items.Count - 1; i++)
                {
                    if (checkedListBox1.Items[i].ToString() == read3[0].ToString())
                    {
                        checkedListBox1.SetItemChecked(i, true);
                    }
                }
 
            }
В итоге отрабатывается только если в checklistbox-е только один элемент

Добавлено через 5 минут
Цитата Сообщение от Караман Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
for(int i=0; i< checkedListBox1.Items.Count; i++)
{
 if(checkedListBox1.Items[i].ToString() == "некая строка")
    {
      checkedListBox1.SetItemChecked(i, true);
    }
 
}
Даже если сравнивать с определенной строкой, то работает только в случае, если я явно указываю определенный элемент, если делаю в цикле for, ничего не работает=(

Добавлено через 25 минут
Помогите
[1] [2]
[2] [3]
[3] [4]
[4]

Вот как сравнить на наличие значений из левой колонки в правой, и в случае если значение в левой колонке = любому из правой - его надо отметить

Добавлено через 10 минут
Я похоже что-то не понимаю в циклах

C#
1
2
3
4
                for (int i = 0; i == checkedListBox1.Items.Count - 1; i++)
                {
                    checkedListBox2.Items.Add(checkedListBox1.Items[i].ToString());
                }
checkedListBox1 - заполнен, в нем 5 элементов, но после выполнения цикла checkedListBox2 остается пустой, как так?(

Добавлено через 1 час 3 минуты
Форумчане,

Первый checklistbox заполнен значениями
[1]
[2]
[3]
Пытаюсь сравнить со строкой = "2"
При попытке делать в цикле
C#
1
2
3
4
5
6
7
for (int i = 0; i== checkedListBox1.Items.Count-1;i++)
{
if( checkedListBox1.Items[i].ToString()=="1")
{
checkedListBox1.SetItemChecked(i, true);
}
}
Ничего не происходит, но если пробую вот так

C#
1
2
3
4
5
6
7
for (int i = 1; i== 1;i++)
{
if( checkedListBox1.Items[i].ToString()=="1")
{
checkedListBox1.SetItemChecked(i, true);
}
}
В данном случае элемент отмечается, непонятно =(

Помогите разобраться, как все же отметить элементы которые = полученным из запроса =(
0
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 183
09.03.2012, 11:56  [ТС]
Помогите разобраться с проблемой!
Спасибо!
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
09.03.2012, 18:07
Цитата Сообщение от ichgo Посмотреть сообщение
C#
1
for (int i = 1; i== 1;i++)
Ты в условие вставишь i== 1, тоесть цикл работает тогда, когда i равна 1, нужно так:
C#
1
for (int i = 0; i <= checkedListBox1.Items.Count - 1; i++)
0
16 / 16 / 0
Регистрация: 08.01.2011
Сообщений: 183
10.03.2012, 18:28  [ТС]
Спасибо!

Но все же разобраться с основной головной болью не получается, как именно проверить, есть ли в первом боксе элемент из второго, и если есть, отметить его!

Ведь второй бокс может отличаться по кол-ву значений, или быть вообще пустым!

Добавлено через 19 минут
Нашел решение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 for (int i = 0; i <= checkedListBox1.Items.Count - 1; i++)
            {
                try
                {
                    read3.Read();
                    if (checkedListBox1.Items[i].ToString() == read3[1].ToString())
                    {
                        checkedListBox1.SetItemChecked(i, true);
                    }
                }
                catch (Exception ex)
                {
                    label4.Text = ex.ToString();
                }
Добавлено через 1 час 0 минут
Эх проблема решилась не до конца,
допустим в боксах следующие элементы
1 1
2 2
3
4 4
5 5

Проблема в том, что цикл как бы прекращается на первом не совпадении, и отмечает только два соответствия, а дальше не идет

Добавлено через 6 минут
Проблема решилась путем
C#
1
2
3
4
5
6
7
8
9
10
            foreach (string zz in systemrolelist)
            {
                            for (int i = 0; i <= checkedListBox1.Items.Count - 1; i++)
            {
                    if (checkedListBox1.Items[i].ToString() == zz)
                    {
                        checkedListBox1.SetItemChecked(i, true);
                    }
            }
            }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.03.2012, 18:28
Помогаю со студенческими работами здесь

Отметить строки в CheckedListBox по результату запроса
Доброго времени суток! Поделитесь, пожалуйста, идеей как сделать следующее. Есть 3 таблицы.В 1й таблице некий список свойств, во второй...

Удаление строки в CheckedListBox
Надо, чтобы в C# checkedlistbox, удалялась строка под номером k. int k; private void btnDelete_Click(object sender,...

Редактирование выбранной строки в checkedListBox
Если я правильно пониманию, то надо эту строку выделить (проверить, что галочка стоит), перенести в textBox, отредактировать там и вставить...

Как отметить строки *дубликатов* каким - нибудь цветом?
как уникальные найти я понял... а как отметить строки *дубликатов* каким - ниб. цветом??? можно найти unique-&gt;...

Удаление до пробела из строки и вывод в checkedListBox
Есть &quot;программа&quot; которая по кнопке загружает из файла .csv данные и выводит в checkedListBox. Но проблема в том, что данные там в формате...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru