標籤:相互 bsp art 點擊 延伸 對話方塊 var 修改 編寫
編寫WinowsForm應用程式時,實現兩個表單之間相互傳遞值的方法其實很簡單。以下用一個例子說明:在名為FormMain主表單運行過程中利用名為FormInfo表單,擷取使用者輸入資訊,並將這些資訊返回給FormMain
1. FormMain和FormInfo
點擊“修改...”按鈕,顯示FormInfo
2. 設定FormInfo中buttonOK和buttonCancal的屬性
3. FormMain代碼
public partial class FormMain : Form { public FormMain() { InitializeComponent(); } private void buttonInfo_Click(object sender, EventArgs e) { // 執行個體化FormInfo,並傳入待修改初值 var formInfo = new FormInfo(labelInfo.Text); // 以對話方塊方式顯示FormInfo if (formInfo.ShowDialog() == DialogResult.OK) { // 如果點擊了FromInfo的“確定”按鈕,擷取修改後的資訊並顯示 labelInfo.Text = formInfo.Information; } } }
4. FormInfo代碼
public partial class FormInfo : Form { public FormInfo() { InitializeComponent(); } /// <summary> /// 建構函式 /// </summary> /// <param name="info">待修改的資訊</param> public FormInfo(string info) : this() { // 在TextBox中顯示資訊初值 textBoxInfo.Text = info; } /// <summary> /// 擷取修改後的資訊 /// </summary> public string Information { get { return textBoxInfo.Text; } } }
5. 運行效果
===========
知識點延伸
知識點1:FormMain和FormInfo是對象。兩表單之間的資訊交換,就是兩個對象之間的資訊交換。很多人迷失在Visual Studio可視化編程介面,編程時把這點拋到九霄雲外啦!
知識點2:在FormMain中buttonOK事件處理函數中,很多人錯誤地認為FormInfo關閉後,它的執行個體formInfo就不存在了。其實,按照C#的規定,這個執行個體一直存在,直到從函數中退出才會銷毀,交給記憶體回收!
Visual Studio 中兩個表單(WinForm)之間相互傳值的方法