當按下表單平鋪欄中的背景關系幫助按鈕時,我試圖顯示一個訊息框(或我可以放入文本的東西)。
這是我想要按下的幫助按鈕:

任何幫助都會很棒!:)
uj5u.com熱心網友回復:
您需要連接HelpRequested或HelpButtonClicked事件
另外,您需要通過設定來顯示按鈕(默認情況下在表單上關閉)
- 幫助按鈕 = 真
- 最小化框 = 假
- 最大化框 = 假
uj5u.com熱心網友回復:
對已經發布的內容進行了一些補充。
幫助按鈕顯示在表單的標題中。
要激活它,請設定HelpButton = true和。MinimizeBox = falseMaximizeBox = false
- 當單擊幫助按鈕時,將引發HelpButtonClicked 事件,僅適用于表單。
- 當您單擊控制元件后(當滑鼠指標具有問號形狀)時,將引發HelpRequested 事件。
要顯示與控制元件相關的幫助,您可以訂閱HelpRequested每個提供幫助的控制元件的事件,或者您可以只HelpRequested對所有控制元件使用表單的事件。
您需要獲取單擊滑鼠時選擇的子控制元件。
在這里,我使用WindowFromPoint()在HelpEventArgs指定的位置獲取 Control 的句柄。
該函式可以獲取嵌套控制元件的句柄。
ADictionary<Control, string>用于存盤和檢索應提供其功能描述(或其他任何內容)的所有控制元件的幫助文本。
請注意,不會為 ContainerControls(表單本身、Panel、GroupBox 等)生成幫助,并且WindowFromPoint不會獲得禁用控制元件的句柄。
using System.Runtime.InteropServices;
public partial class SomeForm : Form
[DllImport("user32.dll", CharSet = CharSet.Auto)]
internal static extern IntPtr WindowFromPoint(Point point);
Dictionary<Control, string> help = new Dictionary<Control, string>();
public SomeForm() {
InitializeComponent();
help.Add(someButton, "Help on someButton");
help.Add(someTextBox, "someTextBox gets help");
help.Add(someNestedControl, "someNestedControl needs clarifications");
}
private void SomeForm_HelpButtonClicked(object sender, CancelEventArgs e) {
// The Help Button has been clicked
}
private void SomeForm_HelpRequested(object sender, HelpEventArgs e) => ShowHelp(e);
public void ShowHelp(HelpEventArgs e) {
e.Handled = true;
var ctl = FromHandle(WindowFromPoint(e.MousePos));
if (ctl != null && help.ContainsKey(ctl)) {
MessageBox.Show(help[ctl]);
}
else {
MessageBox.Show("No help for this Control");
}
}
}
uj5u.com熱心網友回復:
聽起來您是 C# 的新手,所以我將通過示例為您提供最簡單的概述:
在 InitializeComponent() 函式中,您需要添加:
HelpRequested = new System.Windows.Forms.HelpEventHandler(this.form_helpRequested);
一旦按下幫助按鈕,這將告訴表單運行 form_helpRequested。然后您可以使用以下方法實作此事件處理函式:
private void textBox_HelpRequested(object sender, System.Windows.Forms.HelpEventArgs hlpevent)
{
// Your code here
// Example of a popup with text:
MessageBox.Show("This is a help popup");
}
這一切都需要在您的 Form1.cs(或等效)腳本中。
有關此事件處理程式的參考,我建議閱讀這篇文章:https ://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.control.helprequested?view=windowsdesktop-6.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/439503.html
上一篇:如何將json串列轉換為資料框?
