簡體   English   中英

C# 當托盤圖標不在同一個表單上時,如何將上下文菜單分配給托盤圖標?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM