|
8 / 8 / 1
Регистрация: 16.02.2011
Сообщений: 160
|
||||||||||
Выделение нескольких строк в DataGridView с клавишей shift18.10.2017, 20:35. Показов 8925. Ответов 14
Всем привет. Прошу помощи в разрешении небольшой проблемы. Имею табличные данные.
Выделение стоит на RowHeaderSelect.
Вот моё на быструю руку решение, но, как по мне, так это недовелосипед с быдлокодерством. Я прав? Может есть более лёгкий вариант?
0
|
||||||||||
| 18.10.2017, 20:35 | |
|
Ответы с готовыми решениями:
14
DBGrid и выделение правой клавишей мыши несколько строк Сочетание с клавишей shift |
|
8 / 8 / 1
Регистрация: 16.02.2011
Сообщений: 160
|
|
| 18.10.2017, 20:43 [ТС] | |
|
Пробовал использовать событие CellStateChanged, но что-то он у меня зависает... Минус моего кода уже очевиден, если мы из 10,000 запись выберем два крайних от начала и конца диапазона, то бедный алгоритм должен будет пройтись аж по 10-ти тысячам записей, даже если они как таковыми для выделения всех не являются.
0
|
|
|
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
|
|
| 18.10.2017, 20:49 | |
|
sptes,
Выделение с Shift и Control реализовано на уровне ОС. Никакого дополнительного кода не требуется, всё и так выделяется правильно. Разберитесь, какие настройки вашего DGV привели к ситуации, показанной на 2-м рисунке.
0
|
|
|
8 / 8 / 1
Регистрация: 16.02.2011
Сообщений: 160
|
|
| 18.10.2017, 20:51 [ТС] | |
|
Вечер добрый. Я задаю правило выделения всей строки при выделении (фокуса) 1-й ячейки в строке.
0
|
|
|
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
|
|
| 18.10.2017, 21:00 | |
|
sptes,
При выделении HeaderCell или именно ячейки 0-го столбца?
0
|
|
|
8 / 8 / 1
Регистрация: 16.02.2011
Сообщений: 160
|
||||||
| 18.10.2017, 21:02 [ТС] | ||||||
|
именно ячейки 0-го столбца
Участок с комментами выделяет всю строку визуально, однако в dataGridView1.SelectedRows коллекции он не наблюдается.
0
|
||||||
|
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
|
|
| 18.10.2017, 21:04 | |
|
sptes,
А чем выделение по RowHeaderCell не устраивает?
0
|
|
|
8 / 8 / 1
Регистрация: 16.02.2011
Сообщений: 160
|
|
| 18.10.2017, 21:07 [ТС] | |
|
Даценд, что вы имеете ввиду? SelectionMode? Я понимаю, что нужно курить msdn, но не могли бы вы вкратце пояснить?
P.S. я там выше дописал к сообщению дополнение.
0
|
|
|
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
|
|
| 18.10.2017, 21:13 | |
|
Я имею в виду, что строка DGV прекрасно выделяется щелчком по ячейке заголовка строки (HeaderCell). Shift + щелчок по HeaderCell выделяет несколько строк. Так зачем для выделения строки щелкать по ячейке первого столбца?
1
|
|
|
8 / 8 / 1
Регистрация: 16.02.2011
Сообщений: 160
|
|
| 18.10.2017, 21:18 [ТС] | |
|
Даценд, Так, я понял о чём вы. У меня данный элемент выключен для удобства отображение и эстетичности вида в силу ряда причин. Мне нужно функционал этого элемента перевести на первую ячейку первого столбца.
0
|
|
|
8 / 8 / 1
Регистрация: 16.02.2011
Сообщений: 160
|
|
| 18.10.2017, 21:19 [ТС] | |
|
Или, если будет возможным, на этот элемент RowHeader, занести цифровой индекс элементов, который можно будет смещать при изменении таблицы.
0
|
|
|
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
|
|||||||
| 18.10.2017, 21:30 | |||||||
Сообщение было отмечено sptes как решение
РешениеМожно при изменении количества строк таблицы запускать такой код:
1
|
|||||||
|
8 / 8 / 1
Регистрация: 16.02.2011
Сообщений: 160
|
|
| 18.10.2017, 21:32 [ТС] | |
|
Даценд, dataGridView1.Rows[0].HeaderCell.Value
Всё, спасибо, благодаря Вам разобрался! ![]() Добавлено через 56 секунд Даценд, Да, спасибо! А как-либо можно убрать надоедливую стрелку в rowheader текущей строки? И шапку колонки для RowHeader наименовать в "№"?
0
|
|
|
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
|
||||||||
| 18.10.2017, 21:45 | ||||||||
Сообщение было отмечено sptes как решение
Решение
1
|
||||||||
|
8 / 8 / 1
Регистрация: 16.02.2011
Сообщений: 160
|
|
| 18.10.2017, 21:47 [ТС] | |
|
Спасибо большое, очень помогли!
0
|
|
| 18.10.2017, 21:47 | |
|
Помогаю со студенческими работами здесь
15
DataGridView выделение нескольких ячеек и нахождение их суммы!
Полное выделение строк в datagridview Выделение строк в двух datagridview Выделение строк DataGridView цветом по условию Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|