Windows Forms
Использование пользовательского курсора при Drag&Drop
Применяя функцию перетаскивания Drag&Drop студия использует курсоры по умолчанию, которые не всегда подходят разработчику. В данной статье я хочу показать, как можно использовать свой курсор. Паралельно, мы кратко рассмотрим саму реализацию механизма Drag&Drop. Чтобы Drop кнопки производить с учетом координат нажатия на ней в момент перетаскивания, координаты точки нажатия можно сохранить в свойстве Tag кнопки, которое затем прочитать в обработчике события DragDrop и соответсвующим образом подкорректировать новые координаты кнопки.
Прочитать остальную часть записи »
Сохранение настроек приложения
Начиная с версии 2.0 .NET Framework позволяет очень легко создавать, сохранять и загружать настройеи приложения. Довольно часто возникает необходимость в сохранении фонового цвета программы, размеров окна, размеров шрифта чтобы при следующем запуске программы, она сама восстанавливала эти настройки.
Запуск из программы другого приложения
Для того, чтобы из приложения написанного на c# запустить другое приложение, необходимо использовать класс Process пространства имен System.Diagnostics
using System.Diagnostics;
//создаем новый процесс Process proc = new Process(); //Запускаем Блокнто proc.StartInfo.FileName = @"Notepad.exe"; proc.StartInfo.Arguments=""; proc.Start();
Счетчик производительности процессора
Чтобы создать приложение, которое будет отслеживать загрузку процессора и количество доступной оперативной памяти требуется всего несколько минут. Разработчики .NET Framework действительно постарались и включили замечательный компонент производительности Windows NT – PerfomanceCounter (продребнее здесь).
Прочитать остальную часть записи »
Западающая кнопка
Многие даже не подозревают, как в принципе и я раньше не подозревал, что элемент CheckBox может выглядеть как западающая кнопка. Для того, чтобы CheckBox принял форму западающей кнопки, необходимо свойству Appearence установить значение Button (рис. 1)
Избавление от звукового сигнала при нажатии на клавишу Enter
Когда вы нажимаете на клавишу Enter в то время, когда курсор находится в текстовом поле, то издается неприятный звук из динамиков. Чтобы избавится от него необходимо перехватить событие нажатия клавиш:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if(e.KeyChar == (char)Keys.Enter) e.Handled = true; else base.OnKeyPressed(e); }
В листинге выше показан пример для отдельного текстового поля. Если вы хотите применить этот способ ко многим текстовым полям, то проще определить новый класс с наследованием от TextBox и переопределить событие OnKeyPress:
public class TextBoxEx : TextBox { private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if(e.KeyChar == (char)Keys.Enter) e.Handled = true; else base.OnKeyPressed(e); } }