日期:2014-05-18  浏览次数:20662 次

vs2008中的action
有一个Main窗体,一个A用户控件,和B用户控件,将AB在Main的Load事件中加载,以显示到Main中,如下:
 private void Main_Load(object sender, EventArgs e)
  {
  A u1 = new A();
  B u2 = new B();
  panel1.Controls.Add(u1);
  panel2.Controls.Add(u2);
  }

A中有一个按钮btn,B中有一个文本框。点击A中的btn,用提示框的形式弹出B中文本框的值。
定义了一个类C,声明Action变量:public Action<string> GetInfo { get; set; } 
A的btn的点击事件:
 c.GetInfo = (str) => { MessageBox.Show("获得信息:" + str); };

B的文本框值的改变事件中:
c.GetInfo(textBox1.Text);

然后我运行,报错,未实例化。请问大家我该怎么弄。谢谢。


------解决方案--------------------
C# code
C c = new C();
            c.GetInfo = (str) => { MessageBox.Show(str); };
            c.GetInfo(null);