Text = "";
FormBorderStyle = Sizable;
ControlBox = false;
MaximizeBox = false;
MinimizeBox = false;
ShowIcon = false;
编辑:
这需要窗口可以调整大小,但你可以在这方面小小地作弊。将 MinimumSize 和 MaximumSize 设置为所需的大小。这会防止用户调整大小。
正如 Jeff 建议的那样,你也可以在 CreateParams 中实现这一点:
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
unchecked
{
cp.Style |= (int)0x80000000; // WS_POPUP
cp.Style |= 0x40000; // WS_THICKFRAME
}
return cp;
}
}
然而,在这两种情况下,当您将鼠标悬停在边缘时,仍会出现大小调整光标。我不确定如何防止这种情况发生。
if (m.Msg == 0x84 /* WM_NCHITTEST */) {
m.Result = (IntPtr)1;
return;
}
base.WndProc(ref m);
WM_NCHITTEST
,当光标在边界上时返回 HTBORDER
。
protected override void WndProc(ref Message m) { if (m.Msg == 0x20) { m.Result = (IntPtr)1; return; } base.WndProc(ref m); }
这样做可以解决问题,但会留下一个奇怪的副作用——第一次悬停在边框上时,等待光标会出现。然后当你将它移动到客户区域时,它就能正常工作了。不确定如何解决这个问题... - zsalzbank