在用VS2005做應用程序時,時常需要在各窗體間傳一些特定的值,下面列舉傳值方式 僅供參考
1、VS2005 的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();