0

我知道如何删除表单的边框,但我只想删除标题。谷歌搜索 P/Invokes 并没有给我太多结果,所以我想知道,我怎样才能达到这样的结果?

替代文字

4

2 回答 2

2

来自非托管开发,我会 P/Invoke {Get/Set}WindowLong 等等 - 这是我最初的回应 - 但有一种托管方式来处理这个问题。

您需要覆盖表单中的 CreateParams 属性,删除边框样式并添加粗框样式,如下所示:

...
const UInt32 WS_THICKFRAME = 0x40000;
const UInt32 WS_BORDER = 0x800000;
...

protected override CreateParams CreateParams
{
  get
  {
    CreateParams p = base.CreateParams;
    p.Style |= WS_THICKFRAME;
    p.Style &= ~WS_BORDER;

    return p;
  }
}



推荐阅读清单

窗口样式 http://msdn.microsoft.com/en-us/library/ms632600%28VS.85%29.aspx

Form::CreateParams 属性 http://msdn.microsoft.com/en-us/library/system.windows.forms.form.createparams.aspx

于 2010-08-26T22:50:49.667 回答
-1

我现在没有VS,所以我不能给你一个确切的答案,对不起。

在窗口的属性窗格中查找边框样式,其中之一将允许您设置一个类似的:)

编辑:我知道我遗漏了一些东西......首先,查找属性“ControlBox”、“MaximizeBox”和“MinimizeBox”并将它们设置为 false 并在“FormBorderStyle”属性中选择一个相当大的选项 - 是的,它不能看起来像图片中的那个,也是固定大小的,至少没有 PinVoke AFAIK-。

还要记住将“文本”属性留空。

希望这可以帮助 :)

于 2010-08-12T03:21:01.977 回答