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(); 展开
知道怎么做了、刚刚用委托作了一下、跟大家分享下、谢谢大家的热心帮忙
在窗体B中定义委托:public delegate void QueryRefreshRole();
public QueryRefreshRole queryRefreshRole;
在窗体A添加按钮(即从窗体A中进入窗体B处)
窗体B名 showIn = new 窗体B名();
showIn.ququeryRefreshRole=窗体A加载数据的方法名;--此方法不跟括号
在窗体B显示窗体A时(即成功保存数据)
this.queryRefreshRole();
this.close(); 展开
5个回答
展开全部
我做过这个。。 就是在要打开的窗口重载下构造函数。把第一个窗口的蠢雀值传入构造函数中,再在第二个窗口中读取就行~
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); //调用带参的构造函数
参数就穿过去了
主要代码。。。
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); //调用带参的构造函数
参数就穿过去了
主要代码。。。
展开全部
不用那么麻烦的..
用out就可以了.也可以用或者ref..就是在B窗口的构造函数中.参数段冲改前判碧面都加上握判out或者ref..
out和ref具体的作用可以查下百度
用out就可以了.也可以用或者ref..就是在B窗口的构造函数中.参数段冲改前判碧面都加上握判out或者ref..
out和ref具体的作用可以查下百度
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
通过构造函数传值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据重新绑定一下就好了。
追问
求详解、
追答
窗体A的数据源重新select * from 表名 然后再进行bind()一次就ok了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询