关于在c# winform 中定义全局变量的问题

请教在Form1 定义了如下一个全局变量。 public static class GlobalParams
{
public static string User = "abcd";
}

我如何在另外一个form2 或.cs中访问到GlobalParams.User的值呢? 搞了半天没解决。不知原因何在。 用form1 a = new from1(); a. 根本找不到GlobalParams 怎么办?

C#中是没有所谓的全局变量的.要构造出类的属性作为全局变量
可以在GlobalParams 写:
public static string user = ""; //定义变量
public GlobalParams ()
{
user ="abcd";//赋值构造
}
public string User
{
get
{
return user ;
}
set
{
user =value;
}

这样就可以其他窗体访问此User
MessageBox.Show (GlobalParams .User); //直接访问. 显示.结果:"abcd"

GlobalParams frm=new GlobalParams ();
frm.User="efg"; //修改该静态变量的值

MessageBox.Show (GlobalParams .User); //直接访问. 显示.结果:"efg"
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-01-14
C#中是没有所谓的全局变量的.要构造出类的属性作为全局变量
可以在GlobalParams 写:
public static string user = ""; //定义变量
public GlobalParams ()
{
user ="abcd";//赋值构造
}
public string User
{
get
{
return user ;
}
set
{
user =value;
}

这样就可以其他窗体访问此User
MessageBox.Show (GlobalParams .User); //直接访问. 显示.结果:"abcd"

GlobalParams frm=new GlobalParams ();
frm.User="efg"; //修改该静态变量的值

MessageBox.Show (GlobalParams .User); //直接访问. 显示.结果:"efg"本回答被网友采纳

关于在c# winform 中定义全局变量的问题
C#中是没有所谓的全局变量的.要构造出类的属性作为全局变量 可以在GlobalParams 写:public static string user = ""; \/\/定义变量 public GlobalParams (){ user ="abcd";\/\/赋值构造 } public string User { get { return user ;} set { user =value;} 这样就可以其他窗体访问此User Message...

c# winform 关于绘图的问题,如何定义一个Graphics g作为全局变量
你这样试试 我的就是这样做的。新建一个Bitmap,bmp为全局变量,然后再画 bmp = new Bitmap(this.Width, this.Height);using (Graphics g = Graphics.FromImage(bmp)){ pictureBox1.Image = bmp;} 只要用到g的时候 就 这样写 using (Graphics g = Graphics.FromImage(bmp)){ 中间是你的...

c# winform 定义变量的问题
public static string a= ""; \/\/定义变量 public mdiparent (){ a="abcd";\/\/赋值构造 } public string A { get { return a;} set { a=value;} 在form3里 MessageBox.Show (mdiparent .A); \/\/直接访问. 显示.结果:"abcd"而且你可以改变它的值 ...

c# 怎样定义整个程序每个窗口都可以访问的变量?
1. 你说的“每个窗口都可以访问的变量”是指全局变量,在C#中是靠静态类的静态域来实现的,比如定义以下的类:public class MyContext { public static string MyContextVar="HELLO";} 在任何一个窗体中只需要MyContext.MyContextVar就可以获得这个“HELLO”。不过这只是一个简单的例子,这样不是线程...

C#调用到全局变量是空?再上一个按妞事件了赋值了 但是在下一个按钮...
通过代码来看,你要确认,你赋值的moudidvalues所归属的实例要和你其他地方调用的是同一个实例,否则你应该使用static这种关键字,在asp.net中得慎用

C#WinForm中如何判断鼠标是否在某个控件以外按下
先定义一个全局变量public Point p = new Point();private void Form1_MouseMove(object sender, MouseEventArgs e){ p = e.Location;} private void Form1_MouseUp(object sender, MouseEventArgs e){ if (!this.groupBox1.ClientRectangle.Contains(p)){ MessageBox.Show("在groupBox1外面");} }...

C# winform 在一个窗体中如何设置另一个窗体的TextBox的值?
第一种情况,从A中点击SHOW出B~!那么在SHOW的时候在B的构造函数传入A,并且在B中声明一个全局的A,把B的构造函数传入A赋给这个全局变量,在B中设置string的时候,使用全局变量来设置A的TextBox控件值同,若找不到TextBox,那请将TextBox的可访问属性设为public。若B打开A也是同理。第二种情况是A...

请问在C#写winform程序的时候,点击form1中的button1打开form2后,如何...
问题很模糊啊 我的理解是:点击form1的button按钮,弹出form2,当第二次点击button时就不弹出form2了,不知这样理解对不对?如果是这样的话:bool sign = true;\/\/设置一个标记变量,ture代表可弹出窗口,false代表不可弹出,这句放在全局变量的位置 form2 f2 = new form2();if(sign == true){...

c#winform程序如何限制答题次数。
int CurIndex=0;private void Button1_Click(object sender,EventArg e){ if(答对){ MessageBox("right");} else { CurIndex++;if(CurIndex>=3)this.Close();else MessageBox("wrong,剩下"+(3-CurIndex));} } 大体思想就是用一个全局变量记录其答题次数就可以了。

C# winform 中 有一窗体 A ,A中有一个按钮Btn, 单击 Btn 调用窗体B...
关闭子窗体B的时候返回一个值给父窗体A,A接受到这个值就close,参考代码如下:A窗体btn的单击事件:private void Btn_Click(object sender, EventArgs e){ Form1 formB = new Form1();formB.ShowDialog();if (formB.DialogResult == DialogResult.Cancel){ this.Close();} } ...

相似回答