我知道如何删除表单的边框,但我只想删除标题。谷歌搜索 P/Invokes 并没有给我太多结果,所以我想知道,我怎样才能达到这样的结果?
问问题
915 次
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 回答