日期:2014-05-19  浏览次数:20818 次

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();