日期:2014-05-17  浏览次数:20901 次

窗体与窗体值之间的互换
我现在有这样一个问题,我在这个窗口中的一些调查的值已经填写好了,要弹出一个窗口,在另一个ListBox中来显示我填写的值,求解,刚学这个

------解决方案--------------------
http://topic.csdn.net/u/20091221/18/5efb58d1-bea8-4b47-9ef1-460bf3102901.html
------解决方案--------------------
弹出的一个窗口
再自己另写一个构造函数
在本窗口实例另一个窗口时。把值传给构造函数
------解决方案--------------------
一个很笨的方法,定义一个数组,如果是相同类型咯,不同的话,值又不是很多的话就多定义几个变量,全局的,给这些变量赋值,然后将当前对象赋给一个那个啥来则我也不太记得怎么说,反正结果是能够在另外的窗体里面访问当前窗体里面的方法以及全局变量,或则使用对象传值,实体,这个应该知道吧!我也是新手,如果不知道具体代码怎么写,可以给我发邮件,xihuanni2358@qq.com,
------解决方案--------------------
//主窗体的无参构造函数处这样写,
//获取本窗体对象以便其他窗体能够调用
public static StudentMessageManager smm;


//当前窗体的无参构造函数
public StudentMessageManager()
{
//将当前船体赋值
smm = this;
InitializeComponent();
}

//触发事件处这样写
/// <summary>
/// 修改新学员的弹窗
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
//定义全局变量
public string stuid;
private void btnUpdate_Click(object sender, EventArgs e)
{
//获取选中的当前行的第一列也就是学员编号
//stuid=this.DGVShowStudentMessage.SelectedCells[0].Value.ToString();
//赋值
stuid=this.tbxStudentID.text;
 
//新窗体的对象实现窗体跳转
UpdateStudentMessage usm = new UpdateStudentMessage();
usm.ShowDialog();
}

//接受处这样写,就可以接受到那个方法里面的那个值了,这样写最简单,就是通过码字弄的,稍微变一下通过全局数组传递多个,也可以通过实体对象,等等,方法多的去了,

 string stuid = StudentMessageManager.smm.stuid;

------解决方案--------------------
写入数据库,用数据库作为中间交换数据,最可靠,
------解决方案--------------------
http://topic.csdn.net/u/20110407/19/c1068d69-7331-4d02-bc0b-f5ba7a5f8dd8.html
------解决方案--------------------
构造函数将当前值传过去
------解决方案--------------------
还是做一个SQL读取方便,打代码也没这么多东西
------解决方案--------------------
1,可以定义窗体的公共属性并给其赋值,在另一个窗体中访问
2,定义构造函数,将值在new窗体对象的时候传值
3,定义一个公共类,设置为单例模式,可以方便各窗体之间的取值赋值