[問題] 控制項

作者: 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