Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
399 / 318 / 53
Регистрация: 14.08.2014
Сообщений: 1,010

Получить список выбранных строк в CheckedListBox в паре с id

14.10.2016, 09:44. Показов 1968. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здарова мужики!
Проблемка. Вернее даже не проблемка, а просто отсутствие опыта в решении подобной задачи. До этого ничего подобного делать не приходилось.

Задача такая.
Есть у меня список строк.
У каждой строки есть свой уникальный id в виде цифр.

Нужно вывести строки в виде листа и необходимо, чтобы эти строки можно было удобно выбирать. Для этих целей я выбрал контрол CheckedListBox.
Загружать в него строки научился, всё отлично. А вот как привязать к строке id в этом CheckedListBox, я не понимаю.

Конечная цель в том, чтобы получить список выбранных строк в CheckedListBox в паре с id.

Буду благодарен за любую наводку в какую сторону копать. А за пример кода, вообще уважуха!
Спасибо!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.10.2016, 09:44
Ответы с готовыми решениями:

Неправильно заполняется массив выбранных элементов CheckedListBox
Доброго времени суток! В Vb нуб, в .NET тем более. Есть CheckedListBox, в нем 8 позиций. На четырех стоят галочки. Я пытаюсь...

Как из checkedlistbox получить массив имён выбранных элементов
Помогите пожалуйста. Как из checkedlistbox получить массив имён выбранных элементов? То есть, например, у меня в checkedlistbox есть...

Как получить список файлов в папке и вывести в CheckedListBox
Как получить список файлов в папке, вывести в лист чекбокс и если на файле(в лист чекбоксе) стоит галочка, то скрыть файл? Буду рад коду...

9
 Аватар для Gilford
92 / 74 / 24
Регистрация: 31.03.2013
Сообщений: 257
14.10.2016, 10:31
Дядя Корней, попробуй загрузить в чекбокслист строки и сразу же через символ поставить id
Пример:
Строка1:2
Строка2:9
А сам id не выставляй в листе.
Сложно что-то сказал)) чуть позже код дам. Где-то я задавался таким же вопросом)

Добавлено через 10 минут
Ой, вру. Я так и оставлял
Строка1:2
Строка2:9 и т.д.
Потом просто считывал данные после ":"
1
399 / 318 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
14.10.2016, 10:45  [ТС]
Gilford, да вот в том-то и дело, что в строке нельзя выводить id, нужно чтобы выводилась только строка, а id строки спрятать куда-то нужно, чтобы он был невидимым.
Так-то костыльных способов решения задачи у меня навалом)))
Нужно что-то более правильное.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18275 / 14198 / 5368
Регистрация: 17.03.2014
Сообщений: 28,881
Записей в блоге: 1
14.10.2016, 10:52
Лучший ответ Сообщение было отмечено Дядя Корней как решение

Решение

Дядя Корней, создай такой класс
VB.NET
1
2
3
4
5
6
7
8
Class StringId
    Public Text As String
    Public Id As Integer
    
    Public Overrides Function ToString() As String
        Return Text
    End Function
End Class
Далее добавляй их экземпляры в CheckedListBox. Благодаря перегруженному методу ToString на экране будет выводиться только текст. Когда нужно будет получить id выбранных строк делаем цикл
VB.NET
1
2
3
For Each item As StringId In CheckedListBox1.CheckedItems
    ' Обращаемся к item.Id
Next
1
399 / 318 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
14.10.2016, 11:22  [ТС]
OwenGlendower, не понял, а как добавлять в CheckedListBox? Там разве объект в качестве параметра?
Нет сейчас возможности посмотреть в студии, только завтра уже смогу посмотреть.
Но вариант вроде как годный. По поводу добавления в CheckedListBox только не уверен.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18275 / 14198 / 5368
Регистрация: 17.03.2014
Сообщений: 28,881
Записей в блоге: 1
14.10.2016, 11:41
Дядя Корней, в коллекцию Items добавляются Object, в чем несложно убедиться открыв документацию. Следовательно туда можно добавить что угодно.
2
399 / 318 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
14.10.2016, 12:17  [ТС]
OwenGlendower, тогда должно получиться вроде бы))

Хотя, подожди, мне же при каждом добавлении в CheckedListBox нужно будет создавать новый StringId, так?
В таком случае, он же будет пронумерован и строка получится с номером экземпляра StringId. Разве нет?
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18275 / 14198 / 5368
Регистрация: 17.03.2014
Сообщений: 28,881
Записей в блоге: 1
14.10.2016, 12:36
Дядя Корней, тебе нужна пара значений - строка и Id. Для этого мы и объявили класс StringId. Никакой нумерации в нем самом нет. Она есть в коллекции Items, но это не потому что мы используем свой тип, а потому что у коллекции есть индексатор.

Цитата Сообщение от Дядя Корней Посмотреть сообщение
В таком случае, он же будет пронумерован и строка получится с номером экземпляра StringId. Разве нет?
Нет. Посмотри внимательно но код класса StrinId и скажи где ты видишь нумерацию? Поле Id? Оно не обязано идти в порядке увеличения. Если тебя беспокоит что будет выведено в UI, то это определяется методом ToString который возвращает только значение поля Text. Суть очень простая. Класс CheckedListBox позволяет добавлятьв коллекцию Items элементы любого типа. При этом в UI нужно показать текст. Откуда его взять? Нужно вызвать виртуальный метод ToString который есть у переменной любого типа. Таким образом я памяти хранится значение нашего типа, а пользователь видит понятную ему строку.
1
1 / 1 / 0
Регистрация: 06.10.2016
Сообщений: 26
14.10.2016, 12:58
можно вообще все это дело через массив сделать
грузим в массив ID CheckedListBox, текст, свой ID
после выделения нужных строк в CheckedListBox забираем их из массива по ID CheckedListBox
вот и усе
0
399 / 318 / 53
Регистрация: 14.08.2014
Сообщений: 1,010
14.10.2016, 13:28  [ТС]
OwenGlendower, спасибо, теперь всё стало более, чем понятно.

Николай Пряхин, не, программировать костыльно я тоже умею, это мой конёк))))) Первым делом мне тоже сразу же пришла мысль через массивы всё сделать, но это не правильно, поэтому попросил помощи у более опытных ребят.
У CheckedListBox считай свой массив/коллекция, поэтому городить ещё отдельные массивы, это не рационально.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.10.2016, 13:28
Помогаю со студенческими работами здесь

CheckedListBox удаление выбранных элементов
В общем в checkedListBox есть элементы которые имеют статус checked и я написал код для их удаления, но почему-то удаляется не все ...

Как получить список выбранных файлов через контекстное меню?
Приветствую! Я в реестре создал свой пункт меню с командой @="MyTest.exe %1" Если я выбираю один файл и с помощью контекстного меню...

Вывод в Label выбранных значений из CheckedListBox
Доброго времени суток! Помогите пожалуйста разобраться что делаю не так :-| На форме есть checkedListBox и label. По нажатию кнопки...

Заполнение listBox из выбранных элементов checkedlistbox
Добрый день. У меня на форме checkedlistbox , где есть определенный список, допустим разные числа. Устанавливая галочку на определенном...

CheckedListBox: получение названия выбранных элементов
Помогите, пожалуйста. Задача: есть checkedListBox, в нем отмечены ряд строк, нужно написать цикл по всем выбранным элементам в котором...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru