Visual Studio 中兩個窗體(WinForm)之間相互傳值的方法


編寫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#的規定,這個實例一直存在,直到從函數中退出才會銷毀,交給垃圾回收!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM