C#当托盘图标不在同一表格上时,如何将上下文菜单指定给托盘图标?

时间:2009-03-19 01:03:29

标签: c# controls

我使用下面的代码以编程方式创建系统托盘图标,此代码位于类文件中而不是我的主窗体上。我已将contextMenuStrip控件拖到我的主窗体上,我现在需要链接这两个但作为控件如果私有我看不到它。将这两者联系起来的最佳方法是什么?

trayIcon = new NotifyIcon();
trayIcon.Icon = mainForm.Icon;
trayIcon.Text = "Test";
trayIcon.MouseDoubleClick += new MouseEventHandler(this.trayIcon_MouseDoubleClick);
trayIcon.ContextMenuStrip = //help needed here???

全部谢谢

3 个答案:

答案 0 :(得分:1)

您可以将contextMenuStrip的Modifiers属性设置为public。

答案 1 :(得分:0)

除了纯粹的肮脏之外,没有什么可以阻止你将主窗体上的contextMenuStrip公开。

答案 2 :(得分:0)

如果您担心公开实际的ContextMenuStrip字段,为什么不提供非私有只读字段。这仍将在主窗体对象中保持一定程度的封装。

public class MainForm { ...
  public ContextmenuStrip MyMenuStrip { 
    get { return contextMenuStrip; }
  }
}

然后你可以访问托盘图标的mainForm.MyMenuStrip。