急急急.希望有好心人赶紧来帮帮我.有关窗体之间参数传递问题...C#方面.谢谢了

时间:2022-03-27 09:37:14
有2个窗体.1个是入库窗体.1个是物品基本信息窗体. 入库窗体中有1个打开物品信息窗体,通过窗体的SHOWDIALOG去显示物品基本信息窗体,现在我想通过双击物品信息窗体中DATAGRIDVIEW的行.获取该行数据(已实现).通过参数传递到入库窗体(可以传递过去了).就是当物品基本信息窗体被双击后,我用this.close()让其关闭..想实现入库窗体中的一些TEXTBOX控件通过传递过去的参数进行绑定上去...现在遇到的问题就是,当物品基本信息窗体关闭后,参数传递过去.但是入库窗体上的任何控件都没有显示什么.空空的。请问该怎么解决.希望懂得的好心人,能帮我解决下或提下宝贵的意见以及思路,谢谢了.还有,如果有代码的请发C#的,谢谢.

18 个解决方案

#1


1 设窗体间的传参变量为public,即可基本实现;
2 将相应窗体作为某[些]窗体的私有成员变量,当它改变时,作相应变化,可随时读取;
3 若是有若干数据要传递,一般是传表中关键字段(如主键),再作查询得出;

#2


当物品基本信息窗体关闭后,参数传递过去.但是入库窗体上的任何控件都没有显示什么.空空的
==
楼主的代码怎么写的?

#3


你可以通过属性GET和SET得来设置你所需要的值,将其返回即可!

#4


谢谢大家都提出相关的看法.现在参数我是有传递过去了.就是在入库窗体那边,不知道该用什么事件或方法.通过获取物品信息窗体关闭后.来把传过来的参数付给那些相应的TEXTBOX上面...

#5


看看啊

#6


比如你们在做这样一个窗体你们大概是怎么样写这代码的? 

#7


 第一种
第一个窗体里
 form1 add = new form1 (id);
            add.ShowDialog();
第二个窗体里
int id2;
 public from2(int id)
        {
                 this.id2=id;
                 InitializeComponent();
        }
第二种
直接在第一个窗体里没为
public static int id;
在第个窗体里
int id2=form1.id;

#8


发帖前请善于使用论坛的搜索功能,这样的问题跨度不会少于5年,条目不会下于一万

#9


7楼的,我现在是想知道.在窗体2关闭后.窗体1应该在什么事件中调用这些参数(不是想要在窗体1的LOAD方法去调用的。 .)..来实现.当用户一操作关闭窗体2后.窗体1中的数据马上得到更改.

#10


8楼的。我不大懂得使用这,而且不善于语言表达.请问下该用什么语言去搜索这类似的问题?请指教.我感激不尽.

#11


窗体,或其他 非可视程序,传递参数都是一样,面向对象的方法,已经很明显的讲述了 ,用构造函数。
比如 A 需要传递参数给 B
 那么在B的类文件中 就可以有这样一个构造函数 
B(Object parameters){
.......
}

#12


如果我要是找得到我就没必要在发这帖子了.就是因为不懂得找.瞎找了一段时间了.才发帖求救.如果你好心就帮忙解决下,而不是现在来说这些话.谢谢了.

#13


一般而言可以,可以在窗体传递的时候传递一个业务层对象保存其值,并在你的入库窗体中显示出来

#14


产品构造函数
///frm 调用表单
///controlName 调用表单要取回值的控件名称
public FrmGoods(Form frm,string controlName)

protected override void OnFormClosing(FormClosingEventArgs e)
{
frm.Controls[controlName].Text=XXXX;
...
调用时
FrmGoods frm=new frm(this,goodsName);
frm.ShowDialog();

供你参考

#15


如果是取一组值(产品编号,产品名称,单位,产品描述等)
产品构造函数 
///frm 入库表单 
public FrmGoods(FrmInWh frm) 

protected override void OnFormClosing(FormClosingEventArgs e) 

frm.txt产品编号.Text=XXX;
frm.txt产品名称.Text=XXXX;
... 
调用时 
FrmGoods frm=new frm(this); 
frm.ShowDialog(); 

供你参考

#16


winform+c#之窗体之间的传值 
http://www.cnblogs.com/virusswb/archive/2008/03/31/1131276.html

#17


http://www.cnblogs.com/cxfcxf8/archive/2008/05/01/1179036.html
用委托窗体传值。
http://www.cnblogs.com/cxfcxf8/archive/2008/05/01/1179032.html

#18


谢谢各位了.虽然都不是我要的结果.不过我已经找到解决方式了..

#1


1 设窗体间的传参变量为public,即可基本实现;
2 将相应窗体作为某[些]窗体的私有成员变量,当它改变时,作相应变化,可随时读取;
3 若是有若干数据要传递,一般是传表中关键字段(如主键),再作查询得出;

#2


当物品基本信息窗体关闭后,参数传递过去.但是入库窗体上的任何控件都没有显示什么.空空的
==
楼主的代码怎么写的?

#3


你可以通过属性GET和SET得来设置你所需要的值,将其返回即可!

#4


谢谢大家都提出相关的看法.现在参数我是有传递过去了.就是在入库窗体那边,不知道该用什么事件或方法.通过获取物品信息窗体关闭后.来把传过来的参数付给那些相应的TEXTBOX上面...

#5


看看啊

#6


比如你们在做这样一个窗体你们大概是怎么样写这代码的? 

#7


 第一种
第一个窗体里
 form1 add = new form1 (id);
            add.ShowDialog();
第二个窗体里
int id2;
 public from2(int id)
        {
                 this.id2=id;
                 InitializeComponent();
        }
第二种
直接在第一个窗体里没为
public static int id;
在第个窗体里
int id2=form1.id;

#8


发帖前请善于使用论坛的搜索功能,这样的问题跨度不会少于5年,条目不会下于一万

#9


7楼的,我现在是想知道.在窗体2关闭后.窗体1应该在什么事件中调用这些参数(不是想要在窗体1的LOAD方法去调用的。 .)..来实现.当用户一操作关闭窗体2后.窗体1中的数据马上得到更改.

#10


8楼的。我不大懂得使用这,而且不善于语言表达.请问下该用什么语言去搜索这类似的问题?请指教.我感激不尽.

#11


窗体,或其他 非可视程序,传递参数都是一样,面向对象的方法,已经很明显的讲述了 ,用构造函数。
比如 A 需要传递参数给 B
 那么在B的类文件中 就可以有这样一个构造函数 
B(Object parameters){
.......
}

#12


如果我要是找得到我就没必要在发这帖子了.就是因为不懂得找.瞎找了一段时间了.才发帖求救.如果你好心就帮忙解决下,而不是现在来说这些话.谢谢了.

#13


一般而言可以,可以在窗体传递的时候传递一个业务层对象保存其值,并在你的入库窗体中显示出来

#14


产品构造函数
///frm 调用表单
///controlName 调用表单要取回值的控件名称
public FrmGoods(Form frm,string controlName)

protected override void OnFormClosing(FormClosingEventArgs e)
{
frm.Controls[controlName].Text=XXXX;
...
调用时
FrmGoods frm=new frm(this,goodsName);
frm.ShowDialog();

供你参考

#15


如果是取一组值(产品编号,产品名称,单位,产品描述等)
产品构造函数 
///frm 入库表单 
public FrmGoods(FrmInWh frm) 

protected override void OnFormClosing(FormClosingEventArgs e) 

frm.txt产品编号.Text=XXX;
frm.txt产品名称.Text=XXXX;
... 
调用时 
FrmGoods frm=new frm(this); 
frm.ShowDialog(); 

供你参考

#16


winform+c#之窗体之间的传值 
http://www.cnblogs.com/virusswb/archive/2008/03/31/1131276.html

#17


http://www.cnblogs.com/cxfcxf8/archive/2008/05/01/1179036.html
用委托窗体传值。
http://www.cnblogs.com/cxfcxf8/archive/2008/05/01/1179032.html

#18


谢谢各位了.虽然都不是我要的结果.不过我已经找到解决方式了..