在b窗体公共区中定义了如下一个控件:
public System.Windows.Forms.NotifyIcon TrayIcon;
在a窗体中有如下判断语句需调用B窗体中的TrayIcon控件:
My_A frm=new My_A ();
if( frm.TrayIcon.ContextMenu.MenuItems [1].Enabled ==false)
可就是这一条语句出错:未将对象引用到对象的实例
请问这是怎么回事?错在什么地方?如何修改?

解决方案 »

  1.   

    因为你new了一个
    new之后跟你原来的东西不一样了你可以用事件或者属性来处理
      

  2.   

    照楼上所说的,利用属性来取值,b窗体中的代码:
    public class My_A : System.Windows.Forms.Form
    {bool traytcon;
    public My_A()
    {   InitializeComponent();
    traytcon= TrayIcon.ContextMenu.MenuItems[1].Enabled ; 
            }
    public bool bool_traytcon
    { get
    {
    return traytcon;
    }
    }编译时候没错,到运行是提示有“NullReferenceException ”异常发生,怎么回事?
    各位大大帮帮我啊
      

  3.   

    My_A frm=new My_A ();
    if( frm.TrayIcon.ContextMenu.MenuItems [1].Enabled ==false)1.   TrayIcon为null
    2.   ContextMenu为null
    3.   MenuItems [1]为null逐个查一下好了,在运行的时候.编译的时候当然不报错,你又没有语法错误.
      

  4.   

    怎样查1.   TrayIcon为null
    2.   ContextMenu为null
    3.   MenuItems [1]为null
    为空?