我的C#控制檯應用程序顯示一個Windows窗體用戶登錄,我添加了一個幫助按鈕登錄表單的頂部,以防任何用戶有任何問題在Windows窗體的標題欄中按下幫助按鈕時是否檢測到?
我試圖做到的是當用戶按下幫助按鈕時彈出MessageBox()
彈出窗口。我已經做了一些研究,但仍然無法找到任何可行的解決方案。任何幫助將不勝感激!
謝謝你的時間。
我的C#控制檯應用程序顯示一個Windows窗體用戶登錄,我添加了一個幫助按鈕登錄表單的頂部,以防任何用戶有任何問題在Windows窗體的標題欄中按下幫助按鈕時是否檢測到?
我試圖做到的是當用戶按下幫助按鈕時彈出MessageBox()
彈出窗口。我已經做了一些研究,但仍然無法找到任何可行的解決方案。任何幫助將不勝感激!
謝謝你的時間。
根據MSDN來處理這個問題的方法是處理窗口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;
}
}
你見過【如何做-include-help-in-title-bar-of-winform](http://stackoverflow.com/questions/1474663/)或[Adding-help-icon-to-winforms-form-titlebar](http:// stackoverflow.com/questions/1112472/)? – surfmuggle
@slackmuggle不是我的問題。我在問如何添加一個HelpButton點擊事件。我的工作雖然... – C0d1ng
如果你的工作和所提供的答案不符合你所期待的,它將是很好的你的解決方案作爲答案,以便其他人也可以受益。 – surfmuggle