Январь 2012

Перемещение элементов 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 что даст нам все свойства и методы обычной кнопки. Теперь переопределим необходимые события:

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