我的c#控制台应用程序显示一个Windows表单供用户登录,我在登录表单的顶部添加了一个“帮助”按钮,以防万一任何用户有任何疑问
我要完成的工作是在用户按下“帮助”按钮时弹出一个MessageBox()
对话框。我已经做了一些研究,但仍然找不到任何可行的解决方案。任何帮助将不胜感激!谢谢您的时间。
最佳答案
根据MSDN的处理方式是处理Windows WM_HELP消息:
DS_CONTEXTHELP
在对话框的标题栏中包含一个问号。当用户单击问号时,光标会更改
指向带有指针的问号。如果用户随后单击控件
在对话框中,控件收到WM_HELP消息。控制
应将消息传递给对话框过程,该过程应调用
使用HELP_WM_HELP命令的功能。帮助应用
显示一个弹出窗口,通常包含该控件的帮助。
请注意,DS_CONTEXTHELP只是一个占位符。当对话框是
创建后,系统检查DS_CONTEXTHELP,如果存在,
将WS_EX_CONTEXTHELP添加到对话框的扩展样式。
WS_EX_CONTEXTHELP不能与WS_MAXIMIZEBOX或
WS_MINIMIZEBOX样式。
简而言之,您需要为表单中的控件实现WndProc方法(不幸的是,该方法需要从其基类中单独派生):
const int WM_HELP = 0x53;
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case WM_HELP:
// Your handler here
break;
default:
base.WndProc(ref m);
break;
}
}
关于c# - 检测Windows窗体标题栏中何时按下帮助按钮?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37448946/