[英]C# How can I assign a context menu to a tray icon when the tray icon is not on the same form?
我使用下面的代碼以編程方式創建系統托盤圖標,此代碼位於 class 文件中,而不是我的主窗體中。 我已將 contextMenuStrip 控件拖到我的主窗體上,現在我需要將兩者鏈接起來,但如果是私有的控件,我看不到它。 將這兩者聯系起來的最佳方式是什么?
trayIcon = new NotifyIcon();
trayIcon.Icon = mainForm.Icon;
trayIcon.Text = "Test";
trayIcon.MouseDoubleClick += new MouseEventHandler(this.trayIcon_MouseDoubleClick);
trayIcon.ContextMenuStrip = //help needed here???
謝謝大家
您可以將 contextMenuStrip 的 Modifiers 屬性設置為 public。
沒有什么能阻止你將主窗體上的 contextMenuStrip 公開,除了它的純粹骯臟。
如果您擔心公開實際的 ContextMenuStrip 字段,為什么不提供一個非私有只讀字段。 這仍將在您的主窗體 object 中保持一定程度的封裝。
public class MainForm { ...
public ContextmenuStrip MyMenuStrip {
get { return contextMenuStrip; }
}
}
然后您可以訪問 mainForm.MyMenuStrip 以獲取托盤圖標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.