有用Form的話,一定是不會只想一個專案只有一個Form的
不同Form間要怎麼切換和傳值呢
其實.. 我也不是很清楚,有一段還沒想到怎麼處理(後面會說明)
應該說我還在研究中,不過先提供一些小範例
1.一樣創件一個windowform專案
且在右邊新增,在加入一個form表單
2.在Form1建立一個button元件,在Form2建立一個button和label元件
3.這裡是把Form1當作原生的Form,From2是新開的
其中button是互相切換,Label只是為了傳數值而己
4.程式碼如下
a.Form1
int i = 0;
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2(); // 生成Form2物件
form2.FormClosed += Form2_FormClosed; // 事件,form2關閉後
form2.SetForm2Label = "YA~~" + i.ToString() ; // 將 "YA~~"傳至Form2
i++;
form2.Visible = true; // 顯示Form2
this.Visible = false; // 把Form1隱藏起來
}
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
this.Visible = true; // 顯示Form1
}
b.Form2
public string SetForm2Label
{
set
{
label1.Text = value;
}
}
private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
5.概念如下
a.Form1
先建立一個新的Form2
Form2給他string到SetForm2Label,i為次數,只是為了讓他有點變動而己
在建立事件,當Form2關閉時,Form1會觸發動作
[這邊可以 "form2.FormClosed += "打到這後按Tab後面就會自動幫你生成,很方便]
然後顯示Form2,隱藏自己
b.Form2
SetForm2Label讀到Form1來的值,就把他寫入label裡
其實不一定要string,可以自己去轉換
按鈕就只是單純關閉自己
6.編譯結果
多按幾下就可以了,其實應該錄個影片比較清楚,不過反正自己寫一寫試一試就好了 ^^
PS:
其實我還沒研究的地方是
Form2 觸發 Form1的Function
所以我才用事件的方式處理
但是我自己覺得應該有更好的方向
如果有人知道的話,也可以留言跟我說一下,感謝
留言列表