Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#当托盘图标不在同一表单上时,如何将上下文菜单分配给托盘图标?_C#_Controls - Fatal编程技术网

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

C#当托盘图标不在同一表单上时,如何将上下文菜单分配给托盘图标?,c#,controls,C#,Controls,我使用下面的代码以编程方式创建了一个系统托盘图标,该代码位于类文件中,而不是主窗体上。我已经将contextMenuStrip控件拖到了我的主窗体上,现在我需要链接这两个控件,但是作为private控件,我看不到它。将这两者联系起来的最佳方式是什么 trayIcon = new NotifyIcon(); trayIcon.Icon = mainForm.Icon; trayIcon.Text = "Test"; trayIcon.MouseDoubleClick += new MouseEve

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

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时无法看到它。。。你知道为什么吗?谢谢,或者他可以将设计器中的
修饰符
更改为
公共