首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c# 类在不同窗体使用解决方案

2012-01-15 
c# 类在不同窗体使用建立了一个类UserspublicclassUsers{publicstringnamepublicintuseridpublicUsers(s

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


}

private void button1_Click(object sender, EventArgs e)
{

Form3 fm = new Form3();
fm._val = this.textBox1.Text;
if (fm.ShowDialog() == DialogResult.OK)
{
this.textBox1.Text = fm._val;
}


}
}
}


namespace ReadFile
{
public partial class Form3 : Form
{
// 定义一个属性
public string _val;
public string val
{
get
{
return _val;
}
set
{
_val = value;
}
}

public Form3()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
_val = this.textBox1.Text;
this.DialogResult = DialogResult.OK;
this.Hide();
}

private void Form3_Load(object sender, EventArgs e)
{
this.textBox1.Text = _val;
}


}
}

热点排行