我想问的是事件触发.下面的代码是我在窗体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里的事件
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里的事件
form1的onload里
Request.QueryStrin["xxx"]
如果有这个参数
执行ProcessSomeEvent
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.函数();
}
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的事件,