Я определил стиль границы для создания Форма без полей .
с методом переопределения к настраиваемой строке заголовка.
Но когда я переключаю панель управления в режим конструктора,
это покроет мою настроенную строку заголовка,
или поместите элемент управления statusStrip в форму,
также охватывают внешнюю границу, которая была настроена по форме.
![enter image description here](https://i.stack.imgur.com/FZamB.jpg)
Я установил верхнюю / левую / ширину панели, чтобы ограничить превышение окна,
но это не хорошее решение,
потому что я также хочу использовать свойство Control.Dock, чтобы оно «пристыковалось к родительскому элементу управления».
Я нашел здесь другой подход:
Размер окна WPF без полей изменяется с внутренними полями , но не может.
![enter image description here](https://i.stack.imgur.com/hvIN3.jpg)
Могу ли я определить «поля» как CSS BOX,
пусть все новые элементы управления добавляются в форму Form1 в режиме разработки,
тогда автоматический диапазон ограничений?
Это мой код для создания формы без полей:
----
Test.cs
----
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
namespace TestForm
{
public partial class Test : Form
{
protected override void WndProc(ref Message m)
{
....
base.WndProc(ref m);
}
private const int cGrip = 20; // Grip size
private const int cCaption = 35; // Caption bar height;
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x84)
{
Point pos = new Point(m.LParam.ToInt32());
pos = this.PointToClient(pos);
if (pos.Y < cCaption)
{
m.Result = (IntPtr)2;
return;
}
if (pos.X >= this.ClientSize.Width - cGrip && pos.Y >= this.ClientSize.Height - cGrip)
{
m.Result = (IntPtr)17;
return;
}
}
base.WndProc(ref m);
}
protected override void OnLoad(EventArgs e)
{
FormBorderStyle = FormBorderStyle.None;
base.OnLoad(e);
}
protected override void OnPaint(PaintEventArgs e)
{
Rectangle borderRectangle = this.ClientRectangle;
borderRectangle.Inflate(0, 0);
ControlPaint.DrawBorder3D(e.Graphics, borderRectangle, Border3DStyle.Raised);
base.OnPaint(e);
}
}
}
И Form1.cs:
namespace TestForm
{
public partial class Form1 : Test
{
public Form1()
{
//
}
}
}
- .Net Framework 4.0
- WinForms
Китайские заметки:
Панель управления 個 然後 將 其 為 「停駐 於 容器 容器 容器 的 的 的 的 的 的 的 覆蓋 覆蓋 覆蓋 ;
個 rip 放進 一個 statusStrip control 10 下方 , 也會 造成
這個 可以 讓 這個 Из 可以 直接 在 設計 階段 時 , 就 可以 所有 被 被 進來 的 s Control Control Control Control