winform中窗体间传值并刷新

窗体A是用DataGridView列出了一组数据、可以添加信息(不根据任何条件的查询出的就是select*from表名)、此时弹出窗体B、用户在窗体B中保存了相应的信息后... 窗体A是用DataGridView列出了一组数据、可以添加信息(不根据任何条件的查询出的 就是select * from 表名) 、此时弹出窗体B、用户在窗体B中保存了相应的信息后关闭、此时窗体A就能刷新出刚刚窗体B添加的数据、要怎么实现这样的功能、?急急急、拜托大家帮帮忙、小弟在线等
知道怎么做了、刚刚用委托作了一下、跟大家分享下、谢谢大家的热心帮忙
在窗体B中定义委托:public delegate void QueryRefreshRole();
public QueryRefreshRole queryRefreshRole;
在窗体A添加按钮(即从窗体A中进入窗体B处)
窗体B名 showIn = new 窗体B名();
showIn.ququeryRefreshRole=窗体A加载数据的方法名;--此方法不跟括号
在窗体B显示窗体A时(即成功保存数据)
this.queryRefreshRole();
this.close();
展开
 我来答
zeom
推荐于2016-08-11 · TA获得超过174个赞
知道答主
回答量:144
采纳率:0%
帮助的人:105万
展开全部
我做过这个。。 就是在要打开的窗口重载下构造函数。把第一个窗口的蠢雀值传入构造函数中,再在第二个窗口中读取就行~
public s_Form()
{
InitializeComponent();
}
public s_Form(Student model)
{
InitializeComponent();
txt_SNO.Text = model.SNO;
txt_SNAME.Text = model.SNAME;
txt_SSEX.Text = model.SSEX;
txt_SBIRTHDAY.Text = model.SBIRTHDAY;
txt_CLASS.Text = model.CLASS;
}
重载构造函数
在槐伏主带明早窗口
Student model = new Student();
model.SNO = dv_Info.SelectedRows[0].Cells[0].Value.ToString();
model.SNAME = dv_Info.SelectedRows[0].Cells[1].Value.ToString();
model.SSEX = dv_Info.SelectedRows[0].Cells[2].Value.ToString();
model.SBIRTHDAY = dv_Info.SelectedRows[0].Cells[3].Value.ToString();
model.CLASS = dv_Info.SelectedRows[0].Cells[4].Value.ToString();
s_Form sf = new s_Form(model); //调用带参的构造函数
参数就穿过去了
主要代码。。。
小畅飞飞
2011-09-23 · TA获得超过136个赞
知道答主
回答量:31
采纳率:0%
帮助的人:38.3万
展开全部
不用那么麻烦的..
用out就可以了.也可以用或者ref..就是在B窗口的构造函数中.参数段冲改前判碧面都加上握判out或者ref..
out和ref具体的作用可以查下百度
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shuyunxiao520
2011-10-01 · 超过20用户采纳过TA的回答
知道答主
回答量:157
采纳率:0%
帮助的人:62.1万
展开全部
通过构造函数传值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
边又柔
2011-09-24 · 超过65用户采纳过TA的回答
知道答主
回答量:515
采纳率:0%
帮助的人:241万
展开全部
f1的label1可见性设为Public
f1中
Form2 f2 = new Form2();
f2.Owner = this;
f2.Show();
f2中
Form1 f1;
f1 = (Form1)this.Owner;//这句不要写在构枝散造方法里(会出错)最猛信氏好写在Form2的Load方法里
f2的button1_Click事件坦昌中
f1.label1.Text = this.textBox1.Text;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
s136735431
2011-09-23 · TA获得超过190个赞
知道小有建树答主
回答量:205
采纳率:0%
帮助的人:102万
展开全部
数据重新绑定一下就好了。
追问
求详解、
追答
窗体A的数据源重新select * from 表名 然后再进行bind()一次就ok了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式