C#中實現窗體間傳值方法

funnyok發表於2021-09-09

1、VS 2005的Visual C# Windows應用程式和Visual C#智慧裝置Pocket PC 2003裝置應用程式。

假設我們需要點選主窗體FMMain中的某一個按鈕時開啟子窗體FMChild並將某一個值傳給子窗體FMChild,一般情況下,我們點選按鈕顯示子窗體FMChild的程式碼為:

FMChild fmChild = new FMChild();

        fmChild.ShowDialog();

        fmChild.Dispose();

如果我們需要將主窗體FMMain中的string strValueA的值傳給FMChild,那麼我們首先對strValueA進行如下處理:

private string strValueA;

        public string StrValueA

        {

        get { return strValueA; }

        set { strValueA = value; }

        }

使其成為主窗體FMMain的一個屬性,接著修改顯示子窗體的程式碼為以下兩種的其中一種。

方法一:

FMChild fmChild = new FMChild();

        fmChild.ShowDialog(this);

        fmChild.Dispose();

方法二:

FMChild fmChild = new FMChild();

        FMChild.Owner = this;

        fmChild.ShowDialog();

        fmChild.Dispose();

然後在修改子窗體FMChild中申明一個主窗體FMMain物件,

FMMain fmMain;

在需要使用主窗體FMMain的string strValueA的地方加上如下程式碼:

fmMain = (FMMain)this.Owner;

這樣,就可以獲得主窗體FMMain中strValueA的值了。

這時,如果你需要將子窗體FMChild中的string strValueB傳給主窗體FMMain,同樣處理string strValueB。

private string strValueB;


        
public string StrValueB

        {

        get { return strValueB; }

        set { strValueB = value; }

        }

那麼你在關閉子窗體程式碼fmChild.Dispose();後,可以寫一些程式碼來儲存或者處理FMChild的strValueB,例如:

string strTmp = fmChild.StrValueB;

注意,在Visual C#智慧裝置Pocket PC 2003裝置應用程式中顯示子窗體FMChild只能使用:

FMChild fmChild = new FMChild();

        FMChild.Owner = this;

        fmChild.ShowDialog();

        fmChild.Dispose();

在Visual C#智慧裝置Pocket PC 2003的裝置應用程式中ShowDialog()沒有過載。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3137/viewspace-2800370/,如需轉載,請註明出處,否則將追究法律責任。

相關文章