C# 防止自定义边框调整句柄将winform调整得太小

C# 防止自定义边框调整句柄将winform调整得太小,c#,winforms,border,window-resize,C#,Winforms,Border,Window Resize,我目前正忙于开发一个无边界的WinForms表单,我刚刚从中获得了一些代码。我根据自己的需要修改了它,但现在我被卡住了。我如何限制它可以调整的大小 目前,我可以调整我的窗口大小,使其成为屏幕上的一个点。我怎样才能在最小尺寸上加上“帽子” 以下是用于调整大小器的代码片段(应按原样工作): //初始化表单 公共表格1() { 初始化组件(); this.DoubleBuffered=true; this.SetStyle(ControlStyles.ResizerDraw,true); } 私有常量

我目前正忙于开发一个无边界的WinForms表单,我刚刚从中获得了一些代码。我根据自己的需要修改了它,但现在我被卡住了。我如何限制它可以调整的大小

目前,我可以调整我的窗口大小,使其成为屏幕上的一个点。我怎样才能在最小尺寸上加上“帽子”

以下是用于调整大小器的代码片段(应按原样工作):

//初始化表单
公共表格1()
{
初始化组件();
this.DoubleBuffered=true;
this.SetStyle(ControlStyles.ResizerDraw,true);
}
私有常量int cGrip=16;//夹点大小
私有常量int cOption=32;//标题栏高度;
//概述每次绘制表单时发生的情况
受保护的覆盖无效OnPaint(PaintEventArgs e)
{
//绘制具有定义宽度的边框
整数宽度=1;
Pen drawPen=新笔(标题栏、背景色、宽度);
e、 DrawRectangle(drawPen,新矩形(width/2,width/2,this.width-width,this.Height-width));
drawPen.Dispose();
//绘制大小调整器夹点
矩形rc=新矩形(this.ClientSize.Width-cGrip,this.ClientSize.Height-cGrip,cGrip,cGrip);
ControlPaint.DrawSizeGrip(例如图形,此背景色,rc);
rc=新矩形(0,0,this.ClientSize.Width,cOption);
e、 图形。填充矩形(画笔。珊瑚色,rc);
}
//处理windows消息
受保护的覆盖无效WndProc(参考消息m)
{
如果(m.Msg==0x84)
{//Trap WM_NCHITTEST
点位置=新点(m.LParam.ToInt32());
pos=此点到客户端(pos);
//如果(位置Y=this.ClientSize.Width-cGrip&&
位置Y>=this.ClientSize.Height-cGrip)
{
m、 结果=(IntPtr)17;//HTBOTTOMRIGHT
返回;
}
}
基准WndProc(参考m);
}

请注意,我不是一个经验丰富的C#程序员。我以前在C#中的唯一经验是在Unity中编程,因此如果您能详细说明您可能拥有的解决方案,我将不胜感激。

无论表单是否无边界,您仍然可以使用和属性

试试这个:

public Form1()
{
    InitializeComponent();
    this.DoubleBuffered = true;
    this.SetStyle(ControlStyles.ResizeRedraw, true);

    this.MinimumSize = new Size(200, 200);
    this.MaximumSize = new Size(800, 600);
}

非常感谢!我第一次没看到那房子!
public Form1()
{
    InitializeComponent();
    this.DoubleBuffered = true;
    this.SetStyle(ControlStyles.ResizeRedraw, true);

    this.MinimumSize = new Size(200, 200);
    this.MaximumSize = new Size(800, 600);
}