form2里面點擊button,彈出form3并且將變量定義新值并傳遞,form3初始化時根據這個變量初始化listview.請問 如何操作.如果在form2 定義的話,form3使用前要構造form2,才能調用這個變量,構造后這個變量又被重新初始化,所以傳遞的值就被覆蓋了.不知道我說清楚沒有?我也是這樣做的 ,在form3定義一個public 變量,form2的button點擊時賦值然后form3 show,我進行調試的時候發現點擊按鈕的時候變量的值是改變了 但是 初始化form3的時候變量也跟著初始化了所以值就沒有被傳遞過去!!! 當我在form3中增加一個按鈕,把傳遞的函數放到這里顯示,值是可以傳遞的
2 回答

臨摹微笑
TA貢獻1982條經驗 獲得超2個贊
看了半天,你是要form2點擊button打開form3,然后form3加載的時候就有一個值是來自form2的吧,要是這樣的話就如下:
在form3中定義public變量
然后在form2中實例化的時候直接賦值給他
例如:
form3中有
public string a;//這個東西是全局變量
然后form2中button的事件里就寫
form3 f=new form3();
f.a=變量;//
f.show();
不知道是不是你想要的;實現方法很多

BIG陽
TA貢獻1859條經驗 獲得超6個贊
其實很簡單啊,有三種方法都可以實現你要的功能
方法一、就是用構造函數傳值,先在Form3中定義一個成員變量,然后重載Form3的構造函數,添加一個有參數的構造函數(直接復制現有的構造函數,然后添加一個參數,在里面寫上this.成員變量名=參數名即可),寫完這些以后在form2里面new Form3的時候選擇有參數的構造函數完成,然后Show就可以了,這個時候你在form3的form_load里面用這個變量就沒問題了。
方法二、在Form2中調用Form3的成員變量賦值(在new對象之后,Show之前)
方法三、使用第三個類中聲明一個靜態的變量,在Form2中給這個變量賦值,在Form3中使用就可以了。由于是靜態的,直接用類名訪問,不需要new,也獨立于兩個窗體。
- 2 回答
- 0 關注
- 110 瀏覽
添加回答
舉報
0/150
提交
取消