C#程序窗体间使用回调事件方式通讯示例_C#教程

分享到:

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);    
       }    
   }

昵    称:
验证码: