10

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

已经有一个类似的问题: 如何包含帮助'?在winform的标题栏中-但在那个问题中,提出问题的人满足于删除这两个按钮以显示帮助。

有没有我可以同时拥有帮助、最大、最小和关闭按钮的地方?

谢谢。

4

2 回答 2

12

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);

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

于 2012-06-21T16:55:00.187 回答
2

一种方法是绘制自己的边框。

FormBorderStyle = None

现在构建您自己的字幕区域。这不是微不足道的,因为您必须处理拖动调整大小事件、透明度(如果您想要圆角等)。

于 2012-06-21T14:22:06.083 回答