C#当托盘图标不在同一表单上时,如何将上下文菜单分配给托盘图标?
我使用下面的代码以编程方式创建了一个系统托盘图标,该代码位于类文件中,而不是主窗体上。我已经将contextMenuStrip控件拖到了我的主窗体上,现在我需要链接这两个控件,但是作为private控件,我看不到它。将这两者联系起来的最佳方式是什么C#当托盘图标不在同一表单上时,如何将上下文菜单分配给托盘图标?,c#,controls,C#,Controls,我使用下面的代码以编程方式创建了一个系统托盘图标,该代码位于类文件中,而不是主窗体上。我已经将contextMenuStrip控件拖到了我的主窗体上,现在我需要链接这两个控件,但是作为private控件,我看不到它。将这两者联系起来的最佳方式是什么 trayIcon = new NotifyIcon(); trayIcon.Icon = mainForm.Icon; trayIcon.Text = "Test"; trayIcon.MouseDoubleClick += new MouseEve
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设置为public,除了它的肮脏之外 如果您担心将实际的ContextMenuStrip字段公开,为什么不提供一个非私有的只读字段呢。这仍将在主窗体对象中保持一定级别的封装
public class MainForm { ...
public ContextmenuStrip MyMenuStrip {
get { return contextMenuStrip; }
}
}
然后,您可以访问mainForm.MyMenuStrip以获取托盘图标 我已将contextMenuStrip设置为public,但在使用trayIcon.contextMenuStrip=mainForm时无法看到它。。。你知道为什么吗?谢谢,或者他可以将设计器中的
修饰符
更改为公共
。