C#委托和事件用法

2025-04-30 23:24:30
推荐回答(2个)
回答1:

class Form2ButtonClickedEventArgs : EventArgs { string _text; public Form2ButtonClickedEventArgs(string text) { _text = text; } public string Text { get { return _text; } } } delegate void Form2ButtonClickedEventHandler(object sender, Form2ButtonClickedEventArgs e); class Form2 : Form { public event Form2ButtonClickedEventHandler Form2ButtonClicked; private void button_Clicked(object sender, EventArgs e) { if(Form2ButtonClicked != null) { Form2ButtonClicked(this, new Form2ButtonClickedEventArgs(this.textbox.Text)); } } } class Form1 : Form { private void button_Clicked(object sender, EventArgs e) { Form2 form = new Form2(); form.Form2ButtonClicked += new Form2ButtonClickedEventHandler(form2_Form2ButtonClicked); form.ShowDialog(this); } private void form2_Form2ButtonClicked(object sender, Form2ButtonClickedEventArgs e) { this.label.Text=e.Text; } }

回答2:

在form1中写个传值的public 方法,然后再form2中调用就可以了