添加帮助按钮,但保持最大化和最小化

时间:2012-06-21 14:12:26

标签: c# winforms

我希望能够将帮助按钮添加到我的winform中,但保留maxmimize和最小化按钮,但Windows标准是禁用两者以便能够显示帮助按钮。

已经存在类似的问题: How to include help '?' in title bar of winform - 但在那个问题中,提出这个问题的人满足于删除那两个按钮以显示帮助。

我可以在那里同时获得帮助,最大,最小和关闭按钮吗?

感谢。

2 个答案:

答案 0 :(得分:10)

Windows不支持同时显示。解决方法是提供您自己的按钮以触发相同的操作。把它放在靠近右上角的地方。您可以通过向自己发送WM_SYSCOMMAND消息来触发此消息,就像标准帮助按钮一样。像这样:

    private void Help_Click(object sender, EventArgs e) {
        Help.Capture = false;
        SendMessage(this.Handle, WM_SYSCOMMAND, (IntPtr)SC_CONTEXTHELP, IntPtr.Zero);
    }

    private const int WM_SYSCOMMAND = 0x112;
    private const int SC_CONTEXTHELP = 0xf180;
    [System.Runtime.InteropServices.DllImport("user32.dll")]
    private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp);

假设按钮的名称是“帮助”。

答案 1 :(得分:1)

执行此操作的一种方法是绘制自己的边框。

FormBorderStyle = None

现在构建自己的标题区域。这是非常重要的,因为你必须处理拖拽调整大小事件,如果你想要圆角等透明度,等等。