c# 类在不同窗体使用
建立了一个类Users
public class Users
{
public string name;
public int userid;
public Users(string newName, int newUserID)
{
this.name = newName;
this.userid = newUserID;
}
}
然后在frm1中赋值,
Users User = new Users( "abc ",1);
请教, 我如何才能在frm2里面
用User.name把值提出来
谢谢
------解决方案--------------------给你个简单通用的办法吧。
1.在frm2中声明public Users User;
2.frm1中这样写:
Form2 frm2 = new frm2();
frm2.User = new Users( "abc ",1);
frm2.Show();
请试试吧!
------解决方案--------------------Form2 加个带参数的构造函数
private User frm2User;
public Form2(User frm1User)
{
frm2User=frm1User;
}
------解决方案--------------------调用:
Form2 frm2 = new Form2(frm1User);
frm2.show();
------解决方案--------------------static 设置为静态变量
------解决方案--------------------CS中 static 设置为静态变量 可以
------解决方案--------------------一个静态对象..
------解决方案--------------------Form2 frm2 = new Form2(frm1User);
------解决方案--------------------设计模式之单例模式
------解决方案--------------------有N种方法来取这个值,上面static 和单例都可以.
还可以将对象放到线程槽里,以后要用再取出来
------解决方案--------------------up
------解决方案--------------------楼主为何不把 "abc "传递到fm2再初始化调用呢
------解决方案--------------------这个问题其实就是窗体间的传值问题,你可以在Form2中维护一个对From1的引用,就可以使用Form1中的变量了,当然,变量必须是公有的。也可以如楼上所说,使用静态,但是我感觉仅就搂住的需求而言,这样没必要的。
------解决方案--------------------有N多方法,
satic
当参数传过去
单件模式方式
都可以的
------解决方案--------------------public class Users
{
public string name;
public int userid;
public Users(string newName, int newUserID)
{
this.name = newName;
this.userid = newUserID;
}
}
==================================
这种做法 不管是 传值给类.还是从类中得到值 ..都需要传递参数.而且类都要被 实例话..
还是通过 属性 好一点
namespace ReadFile
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();