C#中不同窗體之間的數據傳遞

學習C#不久,對於C#不同窗體之間的數據傳遞,總是處理得不好,今天,通過上網查找資料,小有心得。

C#之間不同窗體之間的數據傳遞,無非有兩種方式:

  • 數據庫或文件。這是最直接的方式,需要傳遞的數據存儲在數據庫、配置文件、或者xml文件中,任何能夠訪問此數據庫或文件的窗體均能對數據進行訪問,解決了數據之間的傳遞問題。
  • 參數傳遞。參數傳遞有幾種情況,分別爲:(假設父窗口爲frmMain, 子窗口分別爲frmSub1, frmSub2)
    • 方式1:父窗口向子窗口傳遞參數。這種情況非常常見,也最簡單,假設父窗口frmMain要向子窗口frmSub1傳遞數據dataFromMain並在frmSub1中進行處理,則只需在子窗口中定義一個函數如:public typeReturn DoHandler(dataFromMain)即可,其調用模式爲:                           
        • frmSub1 frmsub = new frmSub1(); frmsub.DoHandler(dataFromMain);
    • 方式2:子窗口向父窗口傳遞參數。這種情況稍微複雜,子窗口要向父窗口傳遞數據,那麼必須在子窗口中保留父窗口的指針,即將父窗口作爲子窗口的一個數據成員。若子窗口frmSub1要向frmMain中傳遞數據,則frmSub1的類定義爲:
  • public frmMain;
    public class frmSub1
    {
        frmSub1's attribute;
        frmMain mfrmMain;
    
        public frmSub1(frmMain frmmain)
        {
             initiate_attribute();
             mfrmMain = frmmain;
        }
    }

    在構造子窗口的時候,其形式爲:frmSub1 frmsub1 = new frmSub1(this),這裏的this即是主窗口。
  • 方式3:子窗口之間傳遞參數。若父窗口是容器,則只需將子窗口間的傳遞數據的控件聲明爲public即可;若不是,則可以參考方式2,通過在主窗口中定義變量來傳遞子窗口之間的數據。



發佈了26 篇原創文章 · 獲贊 37 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章