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"
}