求vb.net高手指点:关于窗体的class之间传值、窗体c
vb.net吧
全部回复
仅看楼主
level 4
求vb.net高手指点:关于窗体的class之间传值、窗体class和模块module之间传值的问题
在修改一个 从vb6升级到vb.net的程序。程序流程:窗体form1是一个有控件datagridview的主画面,点击按钮之后,进入到form2小画面。form2上面也有datagridview,dgv每行数据的最前面有个checkbox,点击checkbox之后,进入到module2(由public定义的function)去取checkbox所在行的数值,取得数据之后,返回到form2的class2,再由form2的class2把值传到form1的class1。
现在问题有两个:
1、form2的class2和module2之间传值失败,在module2里面如果写上form2.visible = true,则传值成功,但是会有多余的窗体form被启动。现在的解决办法是把module2的代码复制到form2的class2里面,便能传值成功。请问为什么会这样呢?如何改进才能让form2的class2和module2之间能正常传值呢?
2、form2的class2传值到form1的class1失败。最开始form1启动form2的时候,在form1的class1中写了3句代码:me.visible = false、dim form2 as new form2、form2.showdialogue()。form2取值之后返回form1,在form2的class2中写了4句代码:me.visible = false、dim form1 as new form1、form1.showdialogue()、me.close()。form2传值到form1的时候,只要不重新定义form1,就能够传值成功1次,但是返回form1后,form1的其他无关参数好像被累积加载了,导致混乱。请问该如何解决?🙏🙏🙏
2018年08月15日 03点08分 1
level 9
dim form1 as new form1[喷]你以为这个new出来的form1与你一开始的form1是同一个form1?
2018年08月15日 06点08分 2
不是同一个form1了。但是不重新定义form1的话,为什么传值回form1之后,感觉form1被加载两次似的,比如不相干的form1中的下拉框里面的可选数据,成倍增长了。求高手指点如何在class之间正确传值🙏
2018年08月15日 08点08分
回复 城市之星Ω :自己下断点慢慢看程序怎么跑,或者在关键地方把数据打印出来再排错。按你的文字描述没人能知道你怎么传的值。
2018年08月15日 11点08分
level 11
打开一次,实例化一次,你要的东西可能在你看不见的窗体那里。
你可以把全部me.visible=false语句注释掉,然后再运行,瞧瞧结果咋样。
后面你会发现操作越多次,窗体越多。
2018年08月15日 18点08分 3
是啊。如果把me.visible=false删掉,多次执行程序的话,窗体越来越多。所以该语句必须得保留。请问,两个窗体之间传值,在启动对方窗体的时候,语句应该怎么写呢?我哪里需要改进呢?🙏
2018年08月16日 05点08分
@城市之星Ω 你这思想是看不见就以为不存在[黑线]
2018年08月16日 06点08分
1