Записи с меткой «C#»

Перемещение элементов ListBox мышью

В интернете достаточно много статей в которых описывается, как реализовать перемещение элементов списка ListBox с помощью кнопок «Переместить вверх» «Переместить вниз». Но примера реализации перемещения с помощью мыши я так и не нашел (быть может плохо искал :). Поэтому решил написать отдельную статью, возможно кому-то будет полезно.

Идею я реализовал с помощью функции Drag&Drop. Привожу сразу код.
Я прокомментировал основные моменты, поэтому, думаю, вопросов не должно возникнуть:
Прочитать остальную часть записи »

Пишем свой ListBox

Платформа .NET Framework предлагает достаточно большой выбор элементов управления. Но иногда разработчику бывает недостаточно предлагаемого набора. Благо, .NET позволяет перенастраивать элементы под себя. Этим мы и займёмся сейчас. Создадим свой ListBox, элементы которого будут в виде кнопок.

Приступим.
Создадим в Visual Studio новое Windows Forms приложение. После этого в дерево проектов добавляем файл с классом ButtonListBox:

Прочитать остальную часть записи »

Использование пользовательского курсора при Drag&Drop

Применяя функцию перетаскивания Drag&Drop студия использует курсоры по умолчанию, которые не всегда подходят разработчику. В данной статье я хочу показать, как можно использовать свой курсор. Паралельно, мы кратко рассмотрим саму реализацию механизма Drag&Drop. Чтобы Drop кнопки производить с учетом координат нажатия на ней в момент перетаскивания, координаты точки нажатия можно сохранить в свойстве Tag кнопки, которое затем прочитать в обработчике события DragDrop и соответсвующим образом подкорректировать новые координаты кнопки.
Прочитать остальную часть записи »

Перемещение кнопки по форме

В созданном приложении мы реализуем возможность перемещать кнопку по форме при нажатии на нее мышью. Для этого нам нужно будет переопределить события: OnMouseDown, OnMouseUp и OnMouseMove которые и будут отслеживать захват кнопки мышью и её перемещение.

Создадим приложение WindowsFormsApplication и добавим в проект новый класс. Назовем его MyButton. Унаследуем наш класс от System.Windows.Forms.Button что даст нам все свойства и методы обычной кнопки. Теперь переопределим необходимые события:

Прочитать остальную часть записи »

Выбор файлов и папок по маске

Те, кто работал с файлами и папками в командной строке Windows знают, что в ней есть возможность выбирать их по маске. К примеру, необходимо вывести все названия файлов с расширением .txt. Для этого в командной строке нужно набрать команду

for %B in (C:\*.txt) do (echo %B)

В результате, на экран будет выведн список всех файлов с расширением *.txt которые находяться в корне диска C:\.

C# дает возможность выбирать файлы по тому же принципу – по маске. Получить список файлов по маске можно с помощью метода GetFiles класса System.IO.Directory:
Прочитать остальную часть записи »

Отправка e-mail средствами C#

В данной статье я хочу рассказать вам, как с помощью C# и .NET Framework осуществить отправку электронной почты. Мы будем отправлять письмо через определенный smtp сервер, который требует авторизацию. Итак, присутпим.

Создадим консольное приложение. Для работы с сетью и почтой необходимо подключить пространства имен:
Прочитать остальную часть записи »

Создание объекта по имени класса

В книге Павла Агурова «C# Сборник рецептов» приводится очень интересный пример по созданию объекта используя его имя. Для того, чтобы создать объект по имени типа используются методы отражения (reflection). Если класс создаваемого объекта находится в том же простанстве имен, что и создающий код, то можно использовать простое создание экземпляра объекта по его типу. Такой способ удобн, если описание набора объектов находится в некотором конфигурационном файле (например, XML). Создание объектов по имени типа позволяет избавиться от оператора switch, создающего нужный объект в зависимости от имени.
Прочитать остальную часть записи »

Пользовательские события

Каждый программист при разработке программ использует события для отслеживания действий пользователя или изменения значений, набор текста в текстовом поле и т.д. Но как насчет того, чтобы создать свои события в собственноручно созданом контроле. В этой статье мы и рассмотрим создание событий для вашего контрола.

Событие – это сообщение другим объектам программы, что произошло какое-то действие. Действие может быть вызвано пользователем, например нажатие мыши, или же другими элеметами программы. Объект, который вызывает событие называется отправитель сообщения, а объект, который сообщение получает – получатель. Получатель сообщения имеет метод, который автоматически выполняется в ответ на событие.
Прочитать остальную часть записи »

Изменение иконки собственного элемента управления

Для того, чтобы Ваш собственный элемент выглядел профессионально и был виден среди множества других элементов управления на панели инструментов, нужно создать свой собственный значок и присвоить его разработанному элементу. Размеры значка или растровой картинки должны быть размером 16х16 с 16 цветами. Левый нижний пиксел используется для определения програчного цвета.
Прочитать остальную часть записи »

Выгрузка данных из SQL в Excel

Microsoft Office Excel явялется очень удобным средством для работы с табличными данными, построением отчетов и т.д. Разрботчики языка C# предусмотрели возможность для работы и с Excel. У разработчиков есть возможность выгружать данные напрямую в документ, создавать сводные отчеты, диагарммы, в общем делать всё, что можно делать напрямую в документе Excel. В этой статье, мы будем выгружать из базы данных SQL данные в документ Excel.

При написании статьи использовался Microsoft Office 2003. Но думаю, что для других версий этот код будет тоже работать.
Прочитать остальную часть записи »