欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-02-22 19:40:40
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);    
       }    
   }