它应该看起来像点击托盘中的“操作中心”,“电源”,“networking”或“声音”图标时出现的小框。 它需要没有标题栏的玻璃边框。
它也需要是一个固定的大小,不能resize。 感谢任何能提供帮助的人! 🙂
您需要将ControlBox设置为false,清除标题文本并设置边框样式。 既然你说你想要相当大的边界,但不允许它的大小,你也可以设置最小和最大的大小。 最后,为了防止鼠标光标显示调整大小的光标,我们覆盖WM_NCHITTEST结果,如果它们在一个边框上:
private void Form1_Load(object sender, EventArgs e) { this.ControlBox = false; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable; this.MinimumSize = this.MaximumSize = this.Size; this.Text = ""; } const int WM_NCHITTEST = 0x0084; const int HTBOTTOM = 15; const int HTBOTTOMLEFT = 16; const int HTBOTTOMRIGHT = 17; const int HTLEFT = 10; const int HTRIGHT = 11; const int HTTOPLEFT = 13; const int HTTOPRIGHT = 14; const int HTTOP = 12; const int HTCLIENT = 1; protected override void WndProc(ref Message m) { base.WndProc(ref m); if (m.Msg == WM_NCHITTEST) { Console.WriteLine(m.Result.ToString()); switch (m.Result.ToInt32()) { case HTBOTTOM: case HTBOTTOMLEFT: case HTBOTTOMRIGHT: case HTLEFT: case HTRIGHT: case HTTOPLEFT: case HTTOPRIGHT: case HTTOP: m.Result =(IntPtr) HTCLIENT; break; } } }