我想在我的winform上添加帮助按钮,但是保留最大化和最小化按钮,但Windows标准是禁用这两个按钮才能显示帮助按钮。
已经有一个类似的问题:如何在Winform的标题栏中包含帮助“?” - 但在那个问题中,提问者满足于移除这两个按钮以显示帮助按钮。
是否有一种方法可以同时拥有帮助、最大化、最小化和关闭按钮?
谢谢。
我想在我的winform上添加帮助按钮,但是保留最大化和最小化按钮,但Windows标准是禁用这两个按钮才能显示帮助按钮。
已经有一个类似的问题:如何在Winform的标题栏中包含帮助“?” - 但在那个问题中,提问者满足于移除这两个按钮以显示帮助按钮。
是否有一种方法可以同时拥有帮助、最大化、最小化和关闭按钮?
谢谢。
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);
这假设按钮的名称为“帮助”。
FormBorderStyle = None
现在构建自己的标题区域。 这是一项不小的任务,因为您必须处理拖动调整大小事件、透明度(如果您想要圆角等效果)等。