我在Form_A的公共区定义了系统托盘控件:
public System.Windows.Forms.NotifyIcon TrayIcon;
然后在Form_A的load事件中:
MenuItem [ ] mnuItms = new MenuItem [2] ;
mnuItms [ 0 ] = new MenuItem ( ) ;
mnuItms [ 1 ] = new MenuItem ( ) ;
mnuItms [ 1 ] .Text = "开始caspspace" ;
mnuItms [ 1 ] .Click += new System.EventHandler (mnuItms1_click) ; //为托盘程序加入设定好的ContextMenu对象
这时在别的方法内,用TrayIcon.ContextMenu.MenuItems [1].Enabled =false;的语句修改属性没有问题。
但是现在我在Form_A的类中写了另外的方法b,它是Form_b中send事件的处理程序,然后在Form_B的按钮事件中触发send事件,但方法b中的TrayIcon.ContextMenu.MenuItems [1].Enabled =false;语句就通不过了,提示:未将对引用设置到对象的实例
急死我了,怎么回事?我该怎么办?
各位大大指点!不甚感激!
public System.Windows.Forms.NotifyIcon TrayIcon;
然后在Form_A的load事件中:
MenuItem [ ] mnuItms = new MenuItem [2] ;
mnuItms [ 0 ] = new MenuItem ( ) ;
mnuItms [ 1 ] = new MenuItem ( ) ;
mnuItms [ 1 ] .Text = "开始caspspace" ;
mnuItms [ 1 ] .Click += new System.EventHandler (mnuItms1_click) ; //为托盘程序加入设定好的ContextMenu对象
这时在别的方法内,用TrayIcon.ContextMenu.MenuItems [1].Enabled =false;的语句修改属性没有问题。
但是现在我在Form_A的类中写了另外的方法b,它是Form_b中send事件的处理程序,然后在Form_B的按钮事件中触发send事件,但方法b中的TrayIcon.ContextMenu.MenuItems [1].Enabled =false;语句就通不过了,提示:未将对引用设置到对象的实例
急死我了,怎么回事?我该怎么办?
各位大大指点!不甚感激!
解决方案 »
- 为何使用ado.net查询出来的dataset少了一列
- c#弹出来的框框
- Reporting Services编程生成pdf的问题,快帮忙啊,急死啦
- 求一个正则表达式
- 谁能告诉我 System.Net.NetworkCredential NetworkCredential 这个东西是干什么用的.
- C#中有属性数组吗?
- 如何限制窗体启动一次
- 在WINFORM中,怎么实现让程序在一段时间后自动按按钮?
- c++中的char型在c#中如何读取啊?
- (会者不难,难者不会)在Excel的COM组件中单元格对应的公式怎么取得。
- treeView问题(winform)
- 急!!关于SelectCommand,Insertcommand,DeleteCommand,UpdateCommand的使用,在线等
我揣测,你的formB是不是有两个按钮,当“操作”按钮单击之后,formB关闭的同时程序做一些处理,这种处理实际上也就是“开始caspspace”,所以此时contextmenu的“开始caspspace”要false;而另一个按钮就是“取消”操作。如果我的揣测是对的,那么你可以在formA中以DialogShow()(可能拼写不准确)的方式打开formB的实例,看formB实例(注意是formB 窗 体 的实例)的DialogResult属性值是否为DialogResult.OK,如果是的话,就修改contextmenu。
上述都发生在fromA中,前提条件是要将formB中“操作”按钮的DialogResult属性要设置为OK。
天哪,急死我了!
各位大大快帮我想想办法,拜托了!
虽然你也没讲出个道道,但还是感谢,分大部分给你了,笑纳!
“事件可以有许多订阅的处理程序,在该事件发生时,这些处理程序都会被调用,其中包括引发该事件的对象所在的类的事件处理程序,但事件处理程序也可能在其他类中。”
以前看的时候确实没注意到。。*^ ^*照我的理解,调用其他类的事件处理程序,跟调用其他类的变量的方法一样。要看这个事件处理程序是不是public,是才能被调用;然后看该类是不是static的,如果是,则可以直接使用类名调用,如果不是就要先new一个实例,然后通过这个实例来调用。