C#子窗体关闭后刷新父窗体

//form1中“修改”按钮事件
private void editButton_Click(object sender, EventArgs e)
{
ListViewItem LVItems = listView1.FocusedItem;
datasourceInfoFrom dsInfoForm = new datasourceInfoFrom();
dsInfoForm.Show();
dsInfoForm.textService.Text = LVItems.SubItems[0].Text;
dsInfoForm.comboType.Text = LVItems.SubItems[1].Text;
dsInfoForm.textUsername.Text = LVItems.SubItems[2].Text;
dsInfoForm.textPassword.Text = LVItems.SubItems[3].Text;
dsInfoForm.textService.Enabled = false;
}
弹出窗口的代码为:
//form2中“修改”按钮事件
private void saveButton_Click(object sender, EventArgs e)
{
XElement xel = XElement.Load("C:\\DataConfig.xml");
var item = from x in xel.Descendants("Connection")
where (string)x.Element("database") == textService.Text
select x;
foreach (var c in item)
{
c.Element("basetype").ReplaceWith(new XElement("basetype", comboType.Text));
c.Element("username").ReplaceWith(new XElement("username", textUsername.Text));
c.Element("password").ReplaceWith(new XElement("password", textPassword.Text));
}
xel.Save("C:\\DataConfig.xml");
MessageBox.Show("数据源信息修改成功!");
this.Close();
}
怎么能让form2中修改点击以后,form1中的列表刷新,显示修改后内容?
form2打开的时候,form1是不关闭的

第1个回答  推荐于2018-04-04
给你个例子
假设你的主窗口是Mainform,子窗口是form

1。找到MainForm.Designer.cs

2.把你要刷新的控件的类型改成public
比如
private System.Windows.Forms.listBox listBox1;
改成
public System.Windows.Forms.listBox listBox1;

3.在你打开子窗口的地方加上代码
form form = new form();
form.MainForm = this;
form.ShowDialog();

4.在form.cs中添加
public MainForm MainForm;

5.在修改按钮的地方添加代码
比如
MainForm.listBox1.reflush();
完成本回答被提问者和网友采纳
第2个回答  2009-07-16
传递这个实例,invoke一个公开的实例的方法(这个方法用来刷新)
第3个回答  2009-07-16
用父子窗体!或写一方法!在check事件中调用!!
第4个回答  2009-07-16
窗体的继承可以实现

c#中关闭子窗口怎样刷新主窗口 关闭子窗体然后刷新主窗体中的datagradevie...
你可以给子窗口关闭是给一个返回值,父窗口判断返回值 父窗口代码 Form2 f = new Form2();if (f.ShowDialog() == DialogResult.OK){ \/\/刷新 } 子窗口代码 private void Form2_FormClosing(object sender, FormClosingEventArgs e){ this.DialogResult = DialogResult.OK;} ...

C# winform怎么实现子窗体关闭时刷新父窗体数据
方法1:在子窗体的colsing事件中,调用父窗体的刷新方法;方法2:子窗体ShowDialog(),父窗体接收DialogResult.OK 时刷新;方法3:增加程序 协调员的角色,设计界面协调者 对象实现。

如何实现我另一个窗口关闭时,刷新这个窗口(C#中问题)
然后在服窗体初始化的时候让pCurrentWin等于自己,如下:public FormDeptList(){ InitializeComponent();pCurrentWin = this;} 最后就是调用这个父窗体的刷新方法了。我的刷新方法已经封装好了。刷新代码FillDataGridView方法我就不给你了。你自己下吧!子窗体关闭后执行该方法,代码如下:this.Close();Fo...

C#子窗体关闭后刷新父窗体
1。找到MainForm.Designer.cs 2.把你要刷新的控件的类型改成public 比如 private System.Windows.Forms.listBox listBox1;改成 public System.Windows.Forms.listBox listBox1;3.在你打开子窗口的地方加上代码 form form = new form();form.MainForm = this;form.ShowDialog();4.在form.cs中添加...

谁知道在c#中关闭子窗口怎样刷新主窗口? 关闭子窗体然后刷新主窗体中的...
子窗口用模式对话框显示(子窗口.ShowDialog() 然后在这句代码下写上 datagridview绑定数据的代码 子窗口.ShowDialog() ;BindDate(); 这是一个绑定datagridview数据的一个方法

C#子窗口关闭时怎样立刻刷新主窗口
1。如果使用的是MDI父子窗体,可以在关闭子窗体前加入 TextBox tb = (TextBox)MdiParent.Controls["textBox1"]; \/\/ 从MDI父窗体获得控件 tb.Text = textBox1.Text; \/\/ 更新MDI父窗体空间属性值 2。如果使用的是直接创建的窗体,并且是关联窗体(使用了Owner),可以在关闭子窗体前加入 TextBo...

C# winform中实现暂停,结束,实时刷新父窗体数据?
在A窗体上写个方法:public void setText(string value){ textbox1.text=value } B窗体中声明一个委托 public delegate void GetTextDel(string value);public delegate Seter; \/\/这个写在类,里面哦!!然后修改B窗体的构造函数:public B( GetTextDel del){ ...Seter=del;} 在textbox2的...

C#中在子窗口添加新内容后如何自动刷新父窗口,有具体代码么 非常感谢啦...
可以用代理事件实现。不过简单一点的方法就是下面我介绍的这种。Form1是Datagridview的页面。Form2是修改值的页面。Form1:private void adddata(){ if(Form2.ShowDialog() == DialogResult.OK){ \/\/重新绑定数据库 BindDgv();} } Form2:private void btnOK_Click(){ \/\/添加数据的代码...\/\/下...

C#代码form2窗体如何刷新form1窗体datagridview呢?
这个就是典型的子窗体要刷新父窗体。方法有多种,下面说种我自己常用的:点击Form1的button1 打开Form2;再点击Form2的button2 在button2_Click事件中通过this.Owner获取Form1的datagridview 并关闭Form2 public partialclass Form1 : Form{ public Form1() { InitializeComponent(); }...

C# 如何刷新 父窗口的 datagridview。我做了一个增加窗口,增加成功后关 ...
在子窗口里定义一个公共变量public一个bool类型EditOk,还有要返回的数值EditValue,如果这个是真的情况,就说明数据做出了修改。Form1 Form01=new Form1();Form01.ShowDialog();if (Form01.EditOk){ Edt = Form01.EditValue.ToString();\/\/这里传入Form01中的变量到主窗口。if (更新数据的函数,...

相似回答