天天看點

C# 基礎知識 (三).主子對話框數值傳遞

在c# winform程式設計中,我們經常會遇到不同視窗間需要傳遞數值的問題.比如資料庫的應用,主視窗填寫内容num1,點選按鈕,在彈出的子視窗顯示對應num1值;或者在子視窗填寫新注冊使用者名資訊,在主視窗的datagridview動态變化顯示着新添加\修改的值;或者在修改資訊時,輸入使用者編号”000001”在對應textbox中它的相應資料.顯示如下圖所示:

C# 基礎知識 (三).主子對話框數值傳遞

以上應用都涉及到如何在兩個不同視窗間傳遞數值,并實作動态的更新,下面就介紹我請教同學學到的一種主子對話框數值傳遞的知識,僅供大家學習!它是非常基礎的c# winform知識,但也是非常有用的知識.

首先建立一個”windows窗體應用程式”,然後主窗體form1的界面如下圖,然後添加一個子視窗,右鍵”解決方案”中項目名稱,點選”添加”,新增一個”windows窗體應用程式”,其中名稱為”form2.cs”界面設計如下圖所示:

C# 基礎知識 (三).主子對話框數值傳遞
C# 基礎知識 (三).主子對話框數值傳遞

點選主窗體中的”送出”按鈕,填寫如下代碼就可實作在主窗體中調用子窗體的應用.它是在執行個體一個”sub”的子窗體并顯示.它的運作結果就是當使用者點選"送出"按鈕時就會彈出子對話框form2,這就建立了c#主子對話框之間調用的關系.

下面需要介紹如何在子對話框中顯示主對話框中送出的内容,點選form2空白處,生成一個load事件,添加如下代碼,它的具體意思是:在子對話框”form1”中聲明主對話框”form2”,然後在form2的構造函數中給pall指派pall=f1;同時在載入load事件中把”form2”子對話框中的textbox1指派為主對話框中送出的值.

上面僅僅修改了子對話框中的内容,同時需要修改主對話框中的内容:

1.把主對話框”form1”中的textbox1控件設定為public.如下圖所示.因為預設為private(私有),隻能在自己對話框和函數中修改,其他對話框要使用必須設定為public.

C# 基礎知識 (三).主子對話框數值傳遞

2.由于form2中的構造函數變成publicform2(form1f1)擁有參數,是以這裡需要修改點選”送出”按鈕中函數内容如下,把主窗體傳遞給子窗體.

 最後的運作結果如下圖所示

C# 基礎知識 (三).主子對話框數值傳遞

實作子對話框中修改值,主對話框中的值也修改的動态更新,這能應用到很多實際項目中,比如主窗體顯示庫存資訊,子窗體新加\删除\修改商品資訊時,主窗體也要修改.首先方法同上,建立主子對話框,界面如下:

C# 基礎知識 (三).主子對話框數值傳遞

總結下來就是3個步驟:

1.主窗體form1中調用子窗體form2 form2fn2=newform2(this);fn2.show();

2.設定form1中的textbox1為public公有屬性.同樣的道理,如果想顯示form1中的其他控件(如datagridview)、自定義變量或函數,隻需要它聲明為public即可子調用.

3.在form2子對話框中執行個體一個form1主對話框,并直接對其主視窗進行修改.需要修改form2的構造函數來調用form1的public内容.

其中form2的代碼如下,與上面中不同的是把主對話框中textbox1指派即可.

運作結果如下:

C# 基礎知識 (三).主子對話框數值傳遞

但是我還是認為我上面叙述的這種方法是非常有用的c#基礎知識介紹,我僅僅是提供一種可行的方法,希望該文章能幫助到哪些還不知道如何在主子對話框中傳遞數值的同學朋友,最後還是感謝我的那個同學,他告訴我的這種方法.如果有錯誤或不足之處,見諒!