C# Win Form程式設計中,如果出現多個窗體可能需要多個窗體之間傳遞參數值,如通過登入頁頁面跳轉到操作頁面是需要将使用者名作為參數傳遞給新打開視窗。網上所提供方法較多,針對初學者,本文選擇其中幾類較為簡單的方法進行說明,希望對初學者有所幫助。首先給出需要傳遞值的兩個視窗,父視窗A與子視窗B,如下:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SYmhTY2YjYmJWY1MWYxQGMzAjN5ATMjZDNiFmYiRTO58CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
父視窗A(發送值到B視窗)
子視窗B(接收父視窗發送的值)
本例題需要将A視窗中的值傳遞給A視窗打開的B視窗,并在B視窗中顯示傳遞過來的值。主要實作方法描述如下:
1、構造函數方法
構造函數方法主要是指針對子視窗B修改其構造函數,預設情況自動生成的子視窗構造函數是不帶參數的,可以将其修改為帶參數形式,參數為接收的字元串類型。
改寫構造函數用于接收參數
改寫後之後則可以在父視窗中對子視窗進行執行個體化時,傳遞參數值,實作在不同頁面間進行參數的傳遞。其父視窗代碼如下:
父視窗通過子視窗執行個體化傳遞值
2、靜态關鍵字實作傳遞值
在C#中靜态關鍵字static定義的變量,可以被各個窗體對象所通路,是以可以實作在不同窗體之間進行值的傳遞。
定義靜态成員變量
成員變量指派
在完成指派之後,子視窗可通過該靜态成員變量讀取變量值實作參數傳遞效果,讀取實作代碼如下:
子視窗 load事件讀取父視窗靜态成員變量值
3、Public屬性值傳遞
Public屬性值傳遞主要是在子視窗中定義對應的public 屬性用于接收傳遞過來的值,實作值傳遞。
子視窗公共屬性
父視窗在執行個體化子視窗時可對該屬性進行指派,通過指派完成參數值的傳遞。
子視窗public屬性param接收參數
4、直接傳遞窗體實作參數傳遞
直接傳遞窗體是指将父窗體辨別作為變量直接傳遞給子窗體,子窗體通過父窗體辨別實作資料的讀取。首先還是在子窗體中定義public的父窗體類型變量,然後實作傳遞:
修改父窗體要讀取控件為public屬性
子窗體變量
父窗體在執行個體化該子窗體時直接将本身的辨別this傳遞給子窗體,然後子窗體通過pfm讀取父窗體控件中的值。
父窗體直接傳子窗體
子窗體中通過pfm讀取父窗體中的控件值,如下:
讀取傳遞值
以上給出部分常用較為簡單的窗體間資料傳遞的方法,除此之外委托、事件等方法也可實作參數傳遞,但對初學者而言相對複雜,不再介紹。最終測試實作效果如下圖:
本頭條号長期關注于青少年程式設計資訊分享;程式設計課程、素材、代碼分享及青少年程式設計教育訓練。如果您對以上方面有興趣,可關注該頭條号,如有程式設計學習問題可以聯系作者,共同探讨。
往期内容分享如下:
- Win Form登入框本地記住密碼功能實作
- C# Win Form 程式設計實作圖檔的資料庫存儲
- C# Win Form 實作XML檔案讀寫
- C# Win Form 讀取CSV檔案資料
- C# Win Form 動态添加CheckBox控件