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

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

Связанные ComboBox в приложении WinForms/C#

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

Как добавить строку/текст в начало файла в C# и .Net

Задача: добавить текст в начало текстового файла из C#. Стандартные функции добавляют текст в конец файла. Судя по всему законного способа добавления строки в начало не существует. Так что придется загрузить весь файл в память, добавить в начало искомую строку … Читать далее

Как запустить другую программу/исполняемый .exe файл из кода C#

Задача: из программы на C# запустить другую программу (исполняемый файл). В теории все просто Но есть нюанс, если запускаемая программа находится в другом каталоге и использует для получения инофрмации о текущем каталоге функцию Directory.GetCurrentDirectory, то она получит вместо собственного каталога … Читать далее

Как переименовать проект/каталог проекта в Visual Studio?

Задача: полностью переименовать решение Visual Studio, включая каталоги проекта и решения, название исполняемого файла и пространство имен. Решение несколько неочевидно, пройдем по шагам: Делаем резервную копию папки с решением. Решение и проект переименовываем в студии Имя исполняемого .exe файла изменяем … Читать далее

Ловим ошибки в запросе к MS SQl и откатываем изменения - транзакции (transaction) и блок TRY-CATCH

Имеем запрос, меняющий данные на MS SQL Server. Задача: отловить возникшие при выполнении запроса ошибки и откатить все уже внесенные внутри запроса изменения к состоянию на момент его запуска. Помогут нам в этом нелегком деле транзакции и блок TRY-CATCH. Когда … Читать далее

Ошибка при работе с Word (Interop) в C# - "Заглушке переданы неправильные данные / Stub recieved bad data"

Редкая и экзотическая ошибка, способная при удачном стечении обстоятельств съесть значительную часть мозга среднестатистического программиста. У меня она проявилась на одной-единственной машине, ничем не отличавшейся от остальных (XP SP3, Office 2003), куда программу установили из чистого любопытства. Симптомы просты: вылет … Читать далее

Устанавливаем выбранное по умолчанию значение в DataGridViewComboBoxColumn - аналог SelectedValue и SelectedIndex

Имеем колонку ComboBox в составе DataGridView связанную с источником данных (по этой схеме). Задача: изменить выбранное по умолчанию значение в выпадающих списках колонки. При работе с обычным ComboBox используются свойства SelectedIndex, SelectedValue и т.д. В ComboBoxColumn их нет. Вообще. В … Читать далее

Достаточность интеллекта...

Отлаживать код вдвое сложнее, чем писать. Поэтому, если при написании программы вы используете весь свой интеллект, вы по определению недостаточно умны, чтобы ее отладить. Брайан Керниган (Brayan W Kernigan) Не бывает кода, настолько громоздкого, изощренного или сложного, чтобы его нельзя … Читать далее