读书人

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

发布时间: 2012-01-15 22:57:49 作者: rapoo

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;
}


}
}

读书人网 >C#

热点推荐