我想问的是事件触发.下面的代码是我在窗体FORM1里定义的Delegate以及他的方法
public delegate void SomeHandler(object sender, System.EventArgs e);
public event SomeHandler SomeEvent; public Form1() 
{
InitializeComponent();
this.SomeEvent += new SomeHandler(this.ProcessSomeEvent);
}

private void ProcessSomeEvent(object sender, EventArgs e)
{
MessageBox.Show("自定义事件激发成功");
}我要想在FORM2窗体中触发这个事件该在FORM2里怎么写呢?我想实现的是FORM2里点击按钮触发FORM1里的事件

解决方案 »

  1.   

    传个参数到form1
    form1的onload里
    Request.QueryStrin["xxx"]
    如果有这个参数
    执行ProcessSomeEvent
      

  2.   

    1,如果楼主想在Form2中,为Form1添加事件的实现代码,在Form2中,定义一个Form1的实例,
    frm1.SomeEvent += new SomeHandler(this.ProcessSomeEvent);
    将ProcessSomeEvent的实现放在Form2中。
    2,如果楼主为了在Form2中调用Form1的一个函数,那么,不需要用事件机制
    只需要在Form2的Button Click时调用Form1的某一个方法就可以了
    在Form2中,定义一个Form1的实例,
    private void button1_Click(object sender, EventArgs e)
    {
        frm1.函数();
    }
      

  3.   

    XXX里应该写什么?我比较菜,老大们说的清楚点呀
      

  4.   

    给你一个小例子:
    form1中一个button的click事件(object sender, System.EventArgs e)
    {Form2 f = new Form2();
     f.onEvent +=new dlg_event(writeMessage);
     f.Show();
     f.Hide();}
    writeMessage(object sender, System.EventArgs e)
    { MessageBox.Show("Button.Clicked!");}
    form2中代码:
    public  delegate void dlg_event(object sender, System.EventArgs e);
    public event dlg_event onEvent;private void Form2_Load(object sender, System.EventArgs e)
    {
        if(onEvent!=null)
    onEvent(sender,e);
    }
    这样在form1的button中就订阅了form2的事件,