Создаем расширенный Control в WinForms наследуясь от существующего

Задача: немного изменить внешний вид и/или поведение существующего элемента управления Windows Forms. В теории все крайне просто для знакомых с основами объектно-ориентированного программирования людей - мы просто создаем класс-наследник для уже существующего элемента и добавляем новые свойства и метода или … Читать далее

Получаем выбранные строки DataGridView, в котором выбраны только ячейки

Есть DataGridView в котором выводится стандартная табличная информация. Нужно получить выбранные строки и/или список каких-то уникальных кодов для набора выбранных строк, что бы потом сотворить с ними что-то нехорошее. В теории существует специальное свойство DataGridView.SelectedRows, но оно работает только в … Читать далее

Отслеживаем изменения выбранного значения в колонке ComboBox DataGridView (DataGridViewComboBoxColumn)

Задача: отловить изменение выбранного значения в колонке DataGridViewComboBoxColumn. Чтобы достучаться до сидящих в ячейках грида ComboBox надо использовать событие DataGridView.EditingControlShowing, из которого мы получим экземпляр класса DataGridViewEditingControlShowingEventArgs , свойство Control которого в свою очередь уже можно конвертировать в ComboBox. Событие … Читать далее

C#, WinForms, используем перечисление (enumeration) как источник данных для ComboBox

Пример перечисления Возможно несколько вариантов подцепления его к комбо-боксу, в данном случае создам полноценный комбобокс с ValueMember и DisplayMember с которым можно использовать привычный код, но в оба поля положу строковое имя. При желании использовать числовые коды для Value можно … Читать далее

Создание всплывающей подсказки ToolTip для кнопки (и других управляторов)

использование Ссылка на подсказку сохраняется, создавать отдельную переменную на уровне формы не надо. Так же можно создать подсказки в дизайнере. C#: How do I add a ToolTip to a control? How can I display a tooltip over a button using … Читать далее

Раскраска DataGridView, выключение ячейки в WinForms

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

Как сделать текст жирным и изменить другие параметры текста на кнопке WinForms

Задача: изменить параметры шрифта на управляторе WinForms из кода во время выполнения программы. Просто изменить свойства не получится, надо создать новый экземпляр шрифта с неочевидным конструктором: How do I set a textbox's text to bold at run time? Font Class … Читать далее

Как сделать собственный составной элемент управления (composite control) в WinForms

Задача: сделать нестандартный элемент управления (control) для Windows Froms. Какой именно? Есть несколько разных вариантов, темой этой статьи будет собственный DateTimePicker, способный работать с пустыми датами. В качестве пустых дат будет активно использоваться описанный ранее класс DatePlus. Что мы хотим? … Читать далее

Как выключить вкладку в TabControl

В стандартном TabControl полностью выключить вкладку невозможно. В лучшем случае можно выключить ее содержимое, например так но чтобы выключить саму вкладку - ее заголовок в перечне - придется переделывать сам TabControl или воспользоваться плодами чужой работы (что может быть приятнее?). … Читать далее