Удаление строк из DataGridView с EditMode.EditOnEnter

По умолчанию редактирование в DataGridView весьма неинтуитивно, требует либо ввод чего-то либо нажатия F2 либо многократного кликания, но если мы переключимся на редактирование по клику, то столкнемся с совсем другой проблемой - невозможно выбрать всю строку, чтобы удалить ее из … Читать далее

Как раскрасить строки (изменить цвет текста) в ComboBox (C# и WinForms)

Имеется комбо-бокс, связанный с источником данных. Задача: раскрасить строки в разные цвета по какому-то критерию, связанному с источником данных. Чтобы решить эту задачу придется изменить отрисовку на экране строк комбо-бокса повесившись на событие DrawItem. По умолчанию это событие не происходит, … Читать далее

Выбираем/получаем выбранную строку/ячейку в DataGridView

Задача: получить выбранную в данный момент строку/ячейку DataGridView и/или выбрать ее. На самом деле это одна и та же задача, если количество строк и столбцов в гриде может непредсказуемо меняться. Мы конечно можем получить выбранный столбец через свойство SelectedRows, но … Читать далее

ComboBox - подстраиваем ширину выпадающего списка под самый длинный элемент

Два очевидных решения - сделать всплывающую подсказку или увеличить ширину самого выпадающего списка. Вычисляем максимальную длину строки в таблице-справочнике: Setting DropDown list width of DataGridView ComboBoxColumn - WinForms … Читать далее

Нестандартная сортировка в DataGridView

Задача: изменить порядок сортировки значений в DataGridView по одному столбцу. Чаще всего стандартную сортировку приходится переделывать в случае наличия столбца со смешанными, текстово-числовыми данными или, проще говоря, строками, внутри которых содержатся числа вперемешку с текстом. Стандартная сортировка обрабатывает их как … Читать далее

Как переместить элемент управления в WinForms

Задача: изменить местоположение элемента управления, например метки, в процессе работы программы. Положение определяется двумя координатами X и Y, которые отсчитываются от левого верхнего угла контейнера, в котором находится элемент - это может быть сама форма или контейнер внутри нее вроде … Читать далее

Выделяем весь текст в большом количестве NumericUpDown по клику

В руководствах предлагают подсчитывать длину превращенного в строку значения NumericUpDown, но на практике это приводит к мелким глюкам, так что я просто делаю выделение на длину, заведомо большую всех возможных значений: Если NumericUpDown'ов много, то ручное проставление создание функций для … Читать далее

Как выделить/встать/поставить курсор в TextBox

Вроде бы очень простая задача, но требует некоторого шаманства. Простые методы вроде Focus работают не всегда и не везде, в итоге на практике я использую следующий код: TextBox.Select Method Работает и для MaskedTextBox Выбрать весь текст можно методом TextBox.SelectAll Для … Читать далее

Мерцающие элементы управления WinForms/C#

Достаточно редкий и сюрреалистично выглядящий глюк WinForms - пропадающие и снова появляющиеся элементы управления, например связанные комбо-боксы. Это сбои в отрисовке, один из возможных источников - длительное время выполнения кода, подписанного часто возникающие внутри этих управляторов события. Само простое - … Читать далее