說起winform程序中窗體之間的參數互傳,大家找度娘會找到很多方法:
1、在窗體類中創建全局變量,類型為公開、靜態的;
2、在窗體類中定義狗仔函數;
3、通過實踐來船體參數;
這三種思路完全來自於霖小屋的c# winform窗體之間傳遞參數問題總結,大家可以看看他的這篇博客學習學習。
下面我要給大家說的一種方法相對來說有點繁瑣,但對於winform程序初學者來說絕對的受用。之前在度娘上尋找winform窗體的顯示與隱藏受到點啟發,本來winform程序創建新的窗體的時候是不帶參數的,為了能夠在關閉這個窗體打開主窗體,在創建新的窗體時傳入主窗體變量,在新建的窗體中用一個變量接收,這樣新窗體中的變量就相當於主窗體對象,就可以訪問主窗體類中定義的方法和控件的值及屬性,也可以做進一步的修改,這種方法傳值不是指主窗體中的某個變量或值,而傳值是在創建窗體的時候傳主窗體類對象,可能你們還聽得雲里霧里的,給大家附上一段代碼,大家就能明白了。
private Form1 returnForm1 = null; public Form2(Form1 F1) { InitializeComponent(); // 接受Form1對象 this.returnForm1 = F1; } private void Form2_FormClosing(object sender, FormClosingEventArgs e) { //在創建窗體Form2是傳入Form1類對象,這樣就可以訪問主窗體Form1中的方法 和以及控件的值和屬性 this.returnForm1.Visible = true; //恢復Form1 returnForm1.DateViewDetails();//加載運行線路信息 returnForm1.showStation();//首末站數據加載 returnForm1.ComboBoxDetails();//掉電恢復區comboBox數據加載 returnForm1.showStation();//顯示首末站 }