c#,隐藏“控制箱”,winforms

时间:2011-02-27 20:29:36

标签: c# .net winforms

我只是不知道如何解释我的问题。所以我创建了一个图像。

(我不使用WPF)


所以现在我的问题与我的旧问题有关。

现在,我的表格周围有了一个新的“酷”边框。

但只有在我使用FormBorderStyle.SizableToolWindowFormBorderStyle.Sizable时它才有用,否则它就是“无边框”。

但我想拥有不可调整大小的形式......

我的解决方案很糟糕:

我可以使用maximumsize = this.size;minimumsize = this.size但是当我将光标放在边框上时,我的光标会变为“调整大小”光标......这很难看......

我希望你能理解我。

由于

1 个答案:

答案 0 :(得分:7)

您需要将表单设置为没有标题,并且如您所说,还要隐藏控件框。您可以在表单的属性面板中更改这两个选项。

或者,在代码中:

public Form1()
{
    InitializeComponent();

    ControlBox = false;
    Text = "";
}

请注意,这会导致您的表单无法分页(如果它尚未调整大小),您需要添加自己的控件来处理关闭表单。

编辑:阻止窗口可调整大小阻止光标更改为调整大小句柄的一种方法是覆盖WndProc()处理程序形式和拦截WM_NCHITTEST

将此方法放在表单类中,并将FormBorderStyle保持为FormBorderStyle.SizableFormBorderStyle.SizableToolWindow

protected override void WndProc(ref Message message) 
{ 
    const int WM_NCHITTEST = 0x0084; 

    if (message.Msg == WM_NCHITTEST)
    {
        return; 
    }

    base.WndProc(ref message);
}