发布网友 发布时间:2024-10-23 21:54
共4个回答
热心网友 时间:2024-11-13 07:51
在.NET中,窗体也被定义为一个类,所以要想调用窗体中的某个方法,除了要将要调用的方法设为public外,还得创建一个窗体类的实例。然而,在下面这种情况下,就是当我们打开了窗体1(有了此窗体的一个实例),接着打开了窗体2,接下来我们想通过触发窗体2中的某个事件来调用窗体1中的某个方法,而这时我们又不能再创建窗体的新的实例了,怎么办?热心网友 时间:2024-11-13 07:52
在一个按钮事件里写如下代码热心网友 时间:2024-11-13 07:50
假设Form1 中的有 button1_click()事件 ,Form2中有button2_click()事件,想点击button2_click()事件时调用button1_click().思路,---理解C#面向对象的开发机制将Form1窗体中的button1_click()事件Private 改成共有的Public在Form2窗体中定义:private Form1 form1; public Form1 form1; { get{return form1}; set{form1 = value}; } button2_click 调用时: this.form1.button1_click(sender, e);就Ok了热心网友 时间:2024-11-13 07:53
三种方法 1.把form1里的label1的访问属性private 改成public 2.在form1里写个public的方法 在方法中调用label1 form2调用这个方法 3.在form1里写个事件和委托前两种方法都需要在当form2实例化form1的时候将form2对象传给form1 Form1 f1 = new Form1(this); 这样就会增加窗口之间的偶合度用事件是最好也是最常用的办法 //form2里的定义 public delegate OnChangeLabel1(string newText); public event OnChangeLabel1 changeLabel1; //点击button1触发的事件 private void Button1Click(object sender, EventAgment e){ changeLabel1("我是中国人"); } //form1的构造方法里绑定form2事件 public Form1(){ form2.changeLabe1 += new EventHander(ChangeLabel1Method); } private void ChangeLabel1Method(string nText){ this.lable1.text = nText; } 0 回答者: jnc911