Пользовательский элемент управления ClientRectangle - PullRequest
1 голос
/ 16 февраля 2011

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

Причина этого в том, что я могу нарисовать произвольную границу вокруг элемента управления.

Элемент управления имеет свойство ClientRectangle, которое представляет клиентскую область элемента управления. UserControl имеет такой же размер, как и границы элемента управления.

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

Кто-нибудь делал это раньше?

Спасибо !!

1 Ответ

0 голосов
/ 16 февраля 2011

Хорошо,

После небольшого поиска я нашел эту страницу:

http://www.dotnetmonster.com/Uwe/Forum.aspx/dotnet-drawing/769/How-do-you-increase-the-nonclient-area-to-support-a-border

Что очень помогло.

Однако,Я должен был изменить проверку в операторе switch на:

....
switch (m.Msg)
{
    case WM_NCCALCSIZE:
        if (m.WParam != IntPtr.Zero)
        {
            NCCALCSIZE_PARAMS csp;

....

По существу, здесь много возни с сообщениями Windows и рисованием не клиентских областей.Он не идеален и не мешает расположить элементы управления на границе в конструкторе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...