winform窗體間傳值
窗體間傳值要弄清楚到底是哪個對象的問題,否則容易傳錯值。就比如窗體對象loginFrm為登陸窗體,想把當前的登陸用戶信息傳遞給主窗體mainFrm,但是卻實例了一個新的對象loginFrm把裏頭的信息傳遞給了mainFrm,所以得到了一空值,頗有刻舟求劍的味道,不同的內存空間就比如湖水的寬廣一樣,存放著不同的對象,彼此要分清楚。窗體傳值的前提是,要傳的字段,在類裏麵的訪問修飾符必須是public(如果在源窗體內傳值則例外,參見下列常用方法2)。常用的方法:
1. 靜態變量,在窗體裏Class Form1中,寫入一個靜態變量A,可以給其賦值,那麼在這個項目中,就可以通過Form1.A來調用。不推薦此種方法,不太安全。
2. 比較穩妥的方法,就是在傳值的過程中,首先在被傳值窗體form2中,建立一個公有屬性B,做為接收者。在form1裏實例form2時,把需要傳遞的值A賦給新實例form2.B,或者是通過Form2類的構造函數傳遞,方法很多,此種傳值較為安全(推薦)。
3. 若是要得到一組固定的數據,那麼可以寫成一個公有的帶返回值的方法,在源窗體中。然後在目標窗體中實例源窗體對象,調用此方法獲得數據,此方法雖不同於靜態變量,但有異曲同工之妙,可以不必強調對象。其缺點是,方法體內傳遞數據為固定的,不能變通。
最後更新:2017-04-03 14:54:00