.net специальная кнопка управления дизайном - PullRequest
0 голосов
/ 22 января 2010

У меня есть следующая задача программирования (Visual Studio .net - нет веб-приложения), где мне интересно, может быть, есть какой-то пользовательский элемент управления (третье лицо?), Который может быть полезен:

Существует прямоугольная раскладка, и должна быть возможность создавать и перемещать прямоугольные кнопки. Пользователь должен иметь возможность создавать кнопки и настраивать такие свойства, как цвет, изображение, текст и т. Д. На уровне пользователя. Также должна быть возможность установить пользовательские свойства для кнопки. В идеале должна быть возможность выровнять кнопки на сетке, muti-select и т. Д.

Кто-нибудь знает, нужно ли мне создавать это с нуля, или есть что-то, что облегчает мне жизнь?

Спасибо

Ответы [ 2 ]

2 голосов
/ 22 января 2010

Если вы используете WinForms, вы можете захотеть взглянуть на DesignSurface, который позволяет вам добавить дизайнерскую поверхность в ваше приложение ... вы можете перемещать кнопки как дизайнер Visual Studio. Проверьте это:

http://msdn.microsoft.com/en-us/magazine/cc163634.aspx

1 голос
/ 22 января 2010

Простой пример перемещения стандартной кнопки в зависимости от положения мыши здесь .

Вы можете создавать элементы управления, которые наследуются от существующих элементов управления, чтобы упростить жизнь. Проверьте это из MSDN

Что касается перемещения элементов управления и тому подобного в форме, вы можете создавать события, которые переопределяют и удерживают событие мыши и фактически изменяют значения местоположения (x, y) на основе движения мыши. Вы также можете взаимодействовать с любыми другими свойствами, в зависимости от движения мыши или изменения цвета и значения текста ...

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

Вы даже можете переопределить onPaint и обрабатывать все рисунки самостоятельно.

...