C#中 如何从form1调用form2中定义的变量?
网上查着有些人说可以把这个变量定义为publicstaticstring;然后在form1中使用Form2.这个变量,但是我按照这个说法写了如下代码后,namespace...
网上查着有些人说可以把这个变量定义为public static string;
然后在form1中使用Form2.这个变量,但是我按照这个说法写了如下代码后,
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void bt1_Click(object sender, EventArgs e)
{
static public string name="张三";
}
}
}
在 static public string name="张三"; 这句前面那个大括号报错,提示应输入 } ,但这段程序已经不缺 } 了啊。。难道不能在类里面直接写public static 。。? 展开
然后在form1中使用Form2.这个变量,但是我按照这个说法写了如下代码后,
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void bt1_Click(object sender, EventArgs e)
{
static public string name="张三";
}
}
}
在 static public string name="张三"; 这句前面那个大括号报错,提示应输入 } ,但这段程序已经不缺 } 了啊。。难道不能在类里面直接写public static 。。? 展开
6个回答
展开全部
1.你可以定义静态变量,例如public static Form1 currentForm1;
当你的Form1启动后设置这个静态变量为this。则其他地方可以通过这个静态变量访问到当前Form1对象,多个的话就用数组,队列等。
2。其他n多增内聚,降低耦合的方法,比如在Form2中保存一个Form1的引用,启动时候设置,或是添加一个公共的类保存各自的引用等等方法。
3.通过遍历Application.OpenForms找到类型为Form1的对象
当你的Form1启动后设置这个静态变量为this。则其他地方可以通过这个静态变量访问到当前Form1对象,多个的话就用数组,队列等。
2。其他n多增内聚,降低耦合的方法,比如在Form2中保存一个Form1的引用,启动时候设置,或是添加一个公共的类保存各自的引用等等方法。
3.通过遍历Application.OpenForms找到类型为Form1的对象
展开全部
反过来了,语法搞错了,应该是public static而且应该把这个变量定义在form2的
public partial class Form2 : Form
上面,就是定义成全局的,然后在show出form2的时候,窗体名.这个变量名就可以出来了。具体看下窗体传值
public partial class Form2 : Form
上面,就是定义成全局的,然后在show出form2的时候,窗体名.这个变量名就可以出来了。具体看下窗体传值
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建一个类,在类里面定义static public string 变量名,然后form1的值传给变量,在form2中又从类中使用form1传进去的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把变量name设为F1的属性值,f2就可以读取了
c#大概不支持局部变量
c#大概不支持局部变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
找本基础书看看吧,成员变量怎可定义在函数里面的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询