Form_B中:
public delegate void SendMess ( string str ) ;
//定义委托类型
public event SendMess Send ;
//定义一个事件类型
private void button1_Click(object sender, System.EventArgs e)//触发Form_A中的Send事件修改属性
{
 Form2 f2 = new Form2();
       f2.Send  += new Form2.SendMess(Send); }
Form_A中:
private Form_B myForm = new Form_B ( ) ;
myForm.Send += new Form2.SendMess ( Send ) ; 
private void Send ( string str )
{
textBox1.Enable = Enabled ;
//把textBox1控件的Enable属性置为false
}
但是没有反应,请问我什么地方错了?如何修改?

解决方案 »

  1.   

    Form_B中:
    public delegate void SendMess ( string str ) ;
    //定义委托类型
    public event SendMess Send ;
    //定义一个事件类型
    private void button1_Click(object sender, System.EventArgs e)//触发Form_A中的Send事件修改属性
    {
     Form2 f2 = new Form2();
           f2.Send  += new Form2.SendMess(SendState); }
    Form_A中:
    private Form_B myForm = new Form_B ( ) ;
    myForm.Send += new Form2.SendMess ( SendState ) ; 
    private void SendState ( string str )  
    {
    textBox1.Enable = Enabled ;
    //把textBox1控件的Enable属性置为false
    }
    你要注意方法与委托的引用相同了,而且方法的传入string,没有用过
      

  2.   

    private void Send ( string str )
    {
    textBox1.Enable = Enabled ;
    //把textBox1控件的Enable属性置为false
    }
    这句中的private 改为public试试
      

  3.   

    你的逻辑非常的混乱,真是没有办法说了,我是学VB.NET的,我刚查了一下C#事件处理步骤,靠,你的非常非常的糟糕,首先:你还不明白怎样注册一个事件;f2.Send  += new SendMess(methodname);括号里是事件处理的方法(已经省掉了监听程序,因为你只对f2有效)。
    其次:你都没有写处理程序,就是methodname的方法,在这个方法里处理A窗体的是属性
      

  4.   

    try
    http://blog.csdn.net/zhzuo/archive/2004/04/05/22027.aspx
      

  5.   

    private void button1_Click(object sender, System.EventArgs e)//触发Form_A中的Send事件修改属性
    {
     Form2 f2 = new Form2();
           f2.Send  += new Form2.SendMess(SendState);}
    你这个传递的是什么东西?
    应该是传递
    private void button1_Click(object sender, System.EventArgs e)//触发Form_A中的Send事件修改属性
    {
     Send("字符串");//应该是传递Send
    }记到给分,我这个是可以传递的你不要骗人哈
      

  6.   

    private void button1_Click(object sender, System.EventArgs e)//触发Form_A中的Send事件修改属性
    {
     if (Send != null)
     {
        Send("");
      }
    }