我的c#控制台应用程序显示一个Windows窗体供用户登录,我已在登录表单的顶部添加了一个帮助按钮,以防任何用户有任何问题
当用户按下“帮助”按钮时,我想要完成的是弹出MessageBox()
。我做过一些研究,但仍然无法找到任何有效的解决方案。非常感谢任何帮助!
感谢您的时间。
答案 0 :(得分:0)
根据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;
}
}