Как заставить клавишу Enter работать аналогично Tab - переходить к следующему элементу управления

Заказчик захотел, чтобы после нажатия Enter пользователь переходил на следующий элемент управления, аналогично нажатию Tab. Основная идея проста - перехватываем нажатие клавиши Enter и посылаем форме нажатие Tab, но есть одна тонкость - если мы хотим разом установить подобное поведение … Читать далее

Чем отличается хороший программист от профессионала-программиста?

- Знаешь, чем отличается хороший программист от профессионала-программиста? — Чем? — Хороший программист пишет свой код качественно, когда у него хорошее настроение и интересная задача. А профессионал пишет качественный код ВСЕГДА … Читать далее

Как рассчитать возраст по дате рождения в C#

Казалось бы, все просто. Берем текущую дату, вычитаем из нее дату рождения, получаем собственно возраст. Но работа с датами в Net сделана крайне криво, приходится постоянно мастерить разнообразные костыли. Методы вычитания дат вроде Subtract возвращают не DateTime, а TimeSpan. Максимальная … Читать далее

Глюк с удалением значения в NumericUpDown

Имеем NumericUpDown, из которого по клике на кнопку берется значение и используется. Если мы просто вводим в него значения и меняем их - все в порядке. Но если мы удаляем значение и оставляем его пустым - компонент начинает вести себя … Читать далее

Как изменить раскладку клавиатуры в приложении на .Net C#

Сколько раз вы матерились про себя, начав набирать пароль на русском или русский текст на английском? Переключение раскладки в Windows не очень удобно и почти никто не пытается исправить это неудобство в своей программе. Хотя делается это очень просто. Не … Читать далее

Как изменить внешний вид курсора в C# и WinForms

Самый распространенный случай - знаменитые "песочные часы" при ожиданиия завершения какой-либо операции. Меняется курсор очень просто (предполагает код внутри винформы) - достаточно использовать класс Cursor: Список возможных курсоров можно посмотреть в свойствах класса Cursors … Читать далее

Обработка ошибок в диалоговом окне - как предотвратить его закрытие, DialogResult и ShowDialog

Имеем абсолютно стандартное диалоговое окно с кнопками подтверждения и отмены, вызываемое по какому-то действию, например клику по кнопке: Но нам надо не просто получить данные из диалогового окна по кнопке "Ок", а еще и проверить их прямо в диалоговом окне … Читать далее

Обрабатываем ввод данных в колонку чекбоксов DataGridView - C#, checkbox colum, CurrentCellDirtyStateChanged

Имеем сетку DataGridView связанную с некой DataTable через BindingSource. Один из столбцов DataGridView содержит chekbox'ы - в нем надо ставить галочки. При изменении значения в любой ячейке этого столбца, включая удаление и добавление строк, надо проделать некие вычисления по данным … Читать далее

Как удалить текущую строку/все строки из DataGridView/DataTable в C#/.Net

Имеем сетку DataGridView соединенную с таблицей DataTable (может входить в DataSet) с помощью BindingSource. Чтобы удалить выбранную в датагриде строку надо использовать метод RemoveCurrent() класса BindingSource testBindingSource.RemoveCurrent(); Все строки удаляет метод Clear(). Может показаться, что его тоже надо вызывать на … Читать далее

Забавная ошибка в C# - namespace name "Word" could not be found

Изучая чужой код для работы с Word столкнулся с очень забавной ошибкой в простейшем коде говорящей: The name 'Word' does not exist in the current context. Не сразу осознал, что все дело в том, как объявлено используемое пространство имен. Для … Читать далее