我希望能够将帮助按钮添加到我的winform中,但保留maxmimize和最小化按钮,但Windows标准是禁用两者以便能够显示帮助按钮。
已经存在类似的问题: How to include help '?' in title bar of winform - 但在那个问题中,提出这个问题的人满足于删除那两个按钮以显示帮助。
我可以在那里同时获得帮助,最大,最小和关闭按钮吗?
感谢。
答案 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
现在构建自己的标题区域。这是非常重要的,因为你必须处理拖拽调整大小事件,如果你想要圆角等透明度,等等。