为什么直接使用到初始化中就不行呢?

form2里面点击button,弹出form3并且将变量定义新值并传递,form3初始化时根据这个变量初始化listview.
请问 如何操作.
如果在form2 定义的话,form3使用前要构造form2,才能调用这个变量,构造后这个变量又被重新初始化,所以传递的值就被覆盖了.
不知道我说清楚没有?
我也是这样做的 ,在form3定义一个public 变量,form2的button点击时赋值然后form3 show,我进行调试的时候发现点击按钮的时候变量的值是改变了 但是 初始化form3的时候变量也跟着初始化了
所以值就没有被传递过去!!! 

当我在form3中增加一个按钮,把传递的函数放到这里显示,值是可以传递的

HUWWW
浏览 64回答 2
2回答

临摹微笑

看了半天,你是要form2点击button打开form3,然后form3加载的时候就有一个值是来自form2的吧,要是这样的话就如下:在form3中定义public变量然后在form2中实例化的时候直接赋值给他例如:form3中有public string a;//这个东西是全局变量然后form2中button的事件里就写form3 f=new form3();f.a=变量;//f.show();不知道是不是你想要的;实现方法很多 

BIG阳

其实很简单啊,有三种方法都可以实现你要的功能方法一、就是用构造函数传值,先在Form3中定义一个成员变量,然后重载Form3的构造函数,添加一个有参数的构造函数(直接复制现有的构造函数,然后添加一个参数,在里面写上this.成员变量名=参数名即可),写完这些以后在form2里面new Form3的时候选择有参数的构造函数完成,然后Show就可以了,这个时候你在form3的form_load里面用这个变量就没问题了。方法二、在Form2中调用Form3的成员变量赋值(在new对象之后,Show之前)方法三、使用第三个类中声明一个静态的变量,在Form2中给这个变量赋值,在Form3中使用就可以了。由于是静态的,直接用类名访问,不需要new,也独立于两个窗体。
打开App,查看更多内容
随时随地看视频慕课网APP