c# winform 如何用子窗体整体刷新父窗体?
c# winform 如何用子窗体整体刷新父窗体?
A窗体是父窗体
A窗体里打开了子窗体B
B b = new B();
b.ShowDialog();
B窗体里改了数据,想要关闭B窗体时把改动的数据显示到A窗体上
A窗体的数据没有在容器里,是直接在form里的label
------解决方案--------------------用静态变量来传递!
关闭后发生
------解决方案--------------------FormA:
B b = new B();
b.ShowDialog();
if(b.dialogResult==dialogResult.Ok)
{
this.Refresh();
}
BForm关闭事件:
this.Hide();
this.DialogResult=DialogResult.Ok;
------解决方案--------------------楼上的是种方法,不过我想你更改组件的可见性级别,属性的Modifiers为public(默认为Private)的话,从而达到直接访问,这或许比传值要好。
------解决方案--------------------MainForm是父窗体,
ChildForm是子窗体,
我们在子窗体中修改父窗体的txtName(TextBox控件)的值,
在子窗体添加个构造函数
private MainForm mainForm;
public ChildForm(MainForm mainForm)
{
this.mainForm=mainForm;
}
private void Amend()
{
mainForm.txtName="已经在子窗体中修改";
this.Close();
}
txtName这个TextBox这个控件设为Public(假设存在这个控件的话)
所谓的窗体传值就是这个样子了,其实也可以直接将txtName这个控件直接传过来修改
------解决方案--------------------B b = new B();
b.ShowDialog();
在 B里面a.update
当然必须把A传入B!
------解决方案--------------------在B窗体定义事件..
让A窗体注册B窗体的事件..
B更新数据的时侯,触发事件..
A响应事件,更新数据.
------解决方案--------------------用委托!
------解决方案--------------------