[问题] 控件

楼主: GooLoo (平凡)   2019-03-10 19:29:08
我的Form1上面有个checkbox1, 和usercontrol1
这个usercontrol1里面, 想判断这checkbox1是勾还是不勾
在usercontrol内我看不到checkbox1.
我试过 Form1 frm1 = new Form1();
frm1.checkBox1.Checked
modifiers=public 都失败
"打勾和不打勾, 都default的false"
我该怎么做呢?
作者: winder611 (Winder)   2019-03-10 19:56:00
在usercontrol里面写一个public的函数 回传checkbox的的状态 或许可以做到你要的功能
作者: sd016808 (sd016808)   2019-03-10 22:37:00
Usercontrol的建构传一个delegate进来去取得Form上的控件状态就好了吧 还是传一个reference type的instance进来也可以吧 只要外面做好同步更新就好
作者: s4300026 (s4300026)   2019-03-11 08:18:00
不是啊,usercontrol和checkbox怎么会看的见彼此呢? 他们两个毫无关系啊!他们因form而共事,那应该在form的class里处理他们的事情。就像是同间公司的同事,共事不共识。不应该在usercontrol里面写checkbox的处理。不然就是把checkbox拉进usercontrol的class,使usercontrol成为主管。第三种方式:https://imgur.com/a/NzsNXYP第三种方式为第一种的变形,但可提高移植性,只要把class移出form,就可以把一堆鸟事带着走。
作者: forever84721 (Jay)   2019-03-11 19:45:00
依照你的写法 要把Form1传进usercontrol1 不是在usercontrol里new Form1

Links booklink

Contact Us: admin [ a t ] ucptt.com