JacoBosch Ответов: 3

Упорядочения границы и цвет


Как я могу закодировать границу и цвет границы группового поля в приложении Windows Form?

3 Ответов

Рейтинг:
25

Sergey Alexandrovich Kryukov

Вы можете украсить любой элемент управления, добавив к нему некоторую графическую визуализацию. Это делается путем обработки события 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[^],
захват рисунка на панели[^].

—СА


Espen Harlinn

Хороший ответ :)

Sergey Alexandrovich Kryukov

- Спасибо, Эспен.
--СА

Рейтинг:
19

Kanasz Robert

Привет,

попробуйте чек по следующей ссылке:

http://social.msdn.microsoft.com/forums/en-US/winforms/thread/cfd34dd1-b6e5-4b56-9901-0dc3d2ca5788/[^]

С уважением
Роберт


Рейтинг:
1

Espen Harlinn

Переопределяя метод OnPaint (PaintEventArgs e)

Исходный код метода OnPaint по умолчанию выглядит следующим образом Майкрософт[^]

С уважением
Эспен Харлинн


Sergey Alexandrovich Kryukov

Это лучший метод, только есть немного больше. На этот раз мои 4. :-)
--СА

Espen Harlinn

Загрузите существующий код, скопируйте исходный GroupBox.Имплантирование OnPaint и изменение его по желанию - что еще может понадобиться op? Он получит правильное поведение краски без большого количества проб и ошибок - поскольку это не так прямолинейно, как можно было бы подумать. Исходный код показывает, как обращаться с различными флагами управления и настраивать покраску по мере необходимости - и, насколько я знаю, это нигде не задокументировано.