在.NET中利用委托实现窗体间通信

    技术2022-05-11  68

    MainFrm.cs: public partial class MainFrm: Form{ private void MainFrm _Load(object sender, EventArgs e) {  Middle.sendEvent += new Middle.SendMessage(this.DoMethod); } public void DoMethod(string getstr) {  listBox1.Items.Add(getstr); }}ChildFrm.cs:public partial class ChildFrm: Form{ public ChildFrm () {  InitializeComponent(); }  private void button1_Click(object sender, EventArgs e) {  Middle.DoSendMessage(this.textBox1.Text);  textBox1.Text = "";  textBox1.Focus(); }}Middle.cs:public static class Middle{ public delegate void SendMessage(string str); public static event SendMessage sendEvent; public static void DoSendMessage(string str) {  sendEvent(str); }}   同样我们修改一下Program.cs的代码: static class Program{ [STAThread] static void Main() {  Application.EnableVisualStyles();  Application.SetCompatibleTextRenderingDefault(false);  // Application.Run(new Form1());  Form1 mainFrm = new Form1();  childFrm secondFrm = new childFrm();  secondFrm.Show();  Application.Run(mainFrm); }}  

    最新回复(0)