C#程序窗体间使用回调事件方式通讯示例
程序员文章站
2024-02-17 23:30:04
form2:
复制代码 代码如下://定义一个需要string类型参数的委托  ...
form2:
复制代码 代码如下:
//定义一个需要string类型参数的委托
publicdelegate void mydelegate(string text);
public partial class form2 :form1
{
//定义该委托的事件
public event mydelegate myevent;
public form2(string text)
{
initializecomponent();
this.textbox1.text = text;
}
private void btnchange_click(object sender, eventargs e)
{
//触发事件,并将修改后的文本回传
myevent(this.textbox1.text);
this.close();
}
}
form1:
复制代码 代码如下:
public partial class form1 :form
{
public int index = 0;
public string text = null;
public form1()
{
initializecomponent();
}
private void listbox1_selectedindexchanged(object sender, eventargse)
{
if (this.listbox1.selecteditem != null)
{
text = this.listbox1.selecteditem.tostring();
index = this.listbox1.selectedindex;
form2 form2 = new form2(text);
//注册form2_myevent方法的myevent事件
form2.myevent += new mydelegate(form2_myevent);
form2.show();
}
}
//处理
void form2_myevent(string text)
{
this.listbox1.items.removeat(index);
this.listbox1.items.insert(index, text);
}
}
推荐阅读