C# Winforms | Толщина границы формы

Есть ли документация о том, насколько толстая граница правильной формы?

Цель:
Я создал userControl с шириной 800 пикселей. Я хочу поднять всплывающее окно (обычную форму в целом) с новым экземпляром в полном разрешении (800 пикселей - все видно).

Моя проблема: настройка формы Form.Size.Width = 800 не буду делать это Похоже, что граница формы включена в свойство width формы. Мне нужно вычесть эту границу.

Я должен быть что-то вроде: 2px + 800px + 2px

Если вы хотите увидеть какой-нибудь код, скажите мне, но я думаю, что здесь нет необходимости.

РЕДАКТИРОВАТЬ:

введите описание изображения здесь

После всплывающего элемента управления:

введите описание изображения здесь

Код для всплывающего окна:

private void buttonPopup_Click(object sender, EventArgs e)
{
    Form MyPopup = new Form();
    customControl MyUserControl = new customControl();

    MyUserControl.Dock = DockStyle.Fill;

    Rectangle rc = MyUserControl.RectangleToScreen(MyUserControl.ClientRectangle);

    //int thickness = SystemInformation.Border3DSize.Width;
    //MyPopup.MaximumSize = new Size(MyUserControl.Size.Width + (thickness*2), 1500);

    MyPopup.Controls.Add(MyUserControl);
    MyPopup.MaximumSize = new Size(rc.Width, rc.Height);
    MyPopup.Show();
}

Я имею в виду, твой код выглядит логичным для меня. Но результат все тот же. userControl отображается чуть меньше. Я знаю, что использовал dock = fill где моя кнопка не размещена профессионально внутри макета. Но от этого должно быть решение, чтобы просто установить правильный размер.

1 ответ

Решение

Кажется, что вы ищете

int thickness = SystemInformation.Border3DSize;

другая (и, INHO, лучшая) возможность заключается в использовании ClientRectangle контроля. Например:

// Client rectangle in screen coordinates
Rectangle rc = MyControl.RectangleToScreen(MyControl.ClientRectangle);

// Let's align context menu (its width) to bottom of the control
MyContextMenuStrip.AutoSize = false;
// Depending on actual dropdown control you may want align either via
//   Width = rc.Width;
// Or 
//   ClientSize = new Size(rc.Width, someHeight);
MyContextMenuStrip.Width = rc.Width;

// Let's show context menu at the bottom of the control
MyContextMenuStrip.Show(new Point(rc.Left, rc.Bottom));
Другие вопросы по тегам