C#中沒有了像VB.Net中的全局變量,那麼我們如何實現在不同的頁面間傳遞參數呢?
下面舉例說明如何實現這一功能.
1.新建一個工程HeroClock.
2.在該工程中添加一個窗體ClockSet.
3.在該窗體中定義靜態型字符串變量myTestStr1:
public static string myTestStr1="";
4.在該窗體的構造函數中對該變量進行賦值,併爲該窗體類添加屬性GetStrValue.
public Form_ClockSet()
{
//
// Windows 窗體設計器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 調用後添加任何構造函數代碼
//
myTestStr1="frj nihao";
}
public string GetStrValue
{
get
{
return myTestStr1;
}
set
{
myTestStr1=value;
}
}
5.在該工程中另添加一個窗體TimeSet.
6.在ClockSet窗體上添加一個button按鈕(name:but_Test);
7.在ClockSet窗體的but_Test_Click 事件中添加以下代碼:
private void but_Test_Click(object sender, System.EventArgs e)
{
TimeSet frm1=new TimeSet();
frm1.ShowDialog(this) ;
frm1.Close();
}
8.在TimeSet窗體上添加一個button按鈕(name:but_Yes);
9.在ClockSet窗體的but_Yes_Click 事件中添加以下代碼:
private void but_Yes_Click(object sender, System.EventArgs e)
{
MessageBox.Show (Form_ClockSet.myTestStr1 ); //直接訪問. 顯示.結果:"frj nihao"
Form_ClockSet frm2=new Form_ClockSet();
frm2.GetStrValue ="hlk nihao"; //生成一個新的實例對該靜態變量進行操作(修改該靜態變量的值).
MessageBox.Show (frm2.GetStrValue ); //通過該實例的內部成員對它進行訪問 .顯示.結果:"hlk nihao"
MessageBox.Show (Form_ClockSet.myTestStr1 ); //直接訪問. 顯示.結果:"hlk nihao"
}