Упорядочения границы и цвет
Как я могу закодировать границу и цвет границы группового поля в приложении Windows Form?
Вы можете украсить любой элемент управления, добавив к нему некоторую графическую визуализацию. Это делается путем обработки события System.Windows.Forms.Control.Paint
или переопределение виртуального метода System.Windows.Forms.Control.OnPaint
в производном классе.
Не повторяйте распространенную ошибку: не создавайте экземпляр System.Drawing.Graphics
!- возьмите экземпляр из аргументов события.
Пожалуйста, смотрите http://msdn.microsoft.com/en-us/library/system.windows.forms.control.aspx[^].
Один более тонкий намек: поскольку вам нужна граница, будет очень полезно настроить DisplayRectangle
Вы можете переопределить это виртуальное свойство в производном классе, чтобы предотвратить перекрытие дочерних элементов с вашей границей, которая займет некоторое пространство вблизи краев.
Пожалуйста, смотрите http://msdn.microsoft.com/en-us/library/system.windows.forms.control.displayrectangle.aspx[^]. [EDIT: эта ссылка исправлена-SA]
Для получения более подробной информации о рендеринге, пожалуйста, смотрите мои прошлые ответы:
Что же это за игривый метод-рисовать? (DataGridViewImageCell.Красить(...))[^],
Рисование линий между дочерними формами mdi[^],
захват рисунка на панели[^].
Хороший ответ :)
- Спасибо, Эспен.
--СА
Привет,
попробуйте чек по следующей ссылке:
http://social.msdn.microsoft.com/forums/en-US/winforms/thread/cfd34dd1-b6e5-4b56-9901-0dc3d2ca5788/[^]
С уважением
Роберт
Переопределяя метод OnPaint (PaintEventArgs e)
Исходный код метода OnPaint по умолчанию выглядит следующим образом Майкрософт[^]
С уважением
Эспен Харлинн
Это лучший метод, только есть немного больше. На этот раз мои 4. :-)
--СА
Загрузите существующий код, скопируйте исходный GroupBox.Имплантирование OnPaint и изменение его по желанию - что еще может понадобиться op? Он получит правильное поведение краски без большого количества проб и ошибок - поскольку это не так прямолинейно, как можно было бы подумать. Исходный код показывает, как обращаться с различными флагами управления и настраивать покраску по мере необходимости - и, насколько я знаю, это нигде не задокументировано.