Winform数据即时更新 父窗体子窗体即时更新
第一种方法:
用委托,Form2和Form3是同一组
Form2
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- namespace TestMouseMove
- {
- publicdelegatevoid SetVisiableHandler();
- public partial class Form2 : Form
- {
- public Form2()
- {
- InitializeComponent();
- }
- privatevoid button1_Click(object sender, EventArgs e)
- {
- Form3 frm = new Form3(new SetVisiableHandler(SetVisiable));
- frm.Show();
- }
- privatevoid SetVisiable()
- {
- SetVisiable(this.label1, !this.label1.Visible);
- }
- privatevoid SetVisiable(Control control, bool visiable)
- {
- if (this.Controls.Contains(control))
- {
- control.Visible = visiable;
- }
- }
- }
- }
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace TestMouseMove
{
public delegate void SetVisiableHandler();
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form3 frm = new Form3(new SetVisiableHandler(SetVisiable));
frm.Show();
}
private void SetVisiable()
{
SetVisiable(this.label1, !this.label1.Visible);
}
private void SetVisiable(Control control, bool visiable)
{
if (this.Controls.Contains(control))
{
control.Visible = visiable;
}
}
}
}
Form3
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- namespace TestMouseMove
- {
- public partial class Form3 : Form
- {
- private SetVisiableHandler m_setVisible;
- public Form3(SetVisiableHandler setvisible)
- {
- InitializeComponent();
- this.m_setVisible = setvisible;
- }
- privatevoid btnVisible_Click(object sender, EventArgs e)
- {
- if (this.m_setVisible != null)
- {
- this.m_setVisible();
- }
- }
- }
- }
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace TestMouseMove
{
public partial class Form3 : Form
{
private SetVisiableHandler m_setVisible;
public Form3(SetVisiableHandler setvisible)
{
InitializeComponent();
this.m_setVisible = setvisible;
}
private void btnVisible_Click(object sender, EventArgs e)
{
if (this.m_setVisible != null)
{
this.m_setVisible();
}
}
}
}
第二种方法:
用变量,Form4和Form5是同一组
Form4
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- namespace TestMouseMove
- {
- public partial class Form4 : Form
- {
- public Form4()
- {
- InitializeComponent();
- }
- #region 子窗口刷新父窗口的值
- privatestring strLabel1 = "";
- publicstring StrLabel1
- {
- get
- {
- return strLabel1;
- }
- set
- {
- strLabel1 = value;
- this.label1.Text = strLabel1;
- }
- }
- #endregion
- privatevoid button1_Click(object sender, EventArgs e)
- {
- Form5 form5 = new Form5(this);//这里注意传个this
- form5.Show();
- }
- }
- }
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace TestMouseMove
{
public partial class Form4 : Form
{
public Form4()
{
InitializeComponent();
}
#region 子窗口刷新父窗口的值
private string strLabel1 = "";
public string StrLabel1
{
get
{
return strLabel1;
}
set
{
strLabel1 = value;
this.label1.Text = strLabel1;
}
}
#endregion
private void button1_Click(object sender, EventArgs e)
{
Form5 form5 = new Form5(this);//这里注意传个this
form5.Show();
}
}
}
Form5
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- namespace TestMouseMove
- {
- public partial class Form5 : Form
- {
- Form4 form4 = new Form4();
- public Form5(Form4 formFrm)//这个构造方法里有参数
- {
- form4 = formFrm; //这个必须要有
- InitializeComponent();
- }
- privatevoid button1_Click(object sender, EventArgs e)
- {
- form4.StrLabel1 = this.textBox1.Text;
- }
- }
- }
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace TestMouseMove
{
public partial class Form5 : Form
{
Form4 form4 = new Form4();
public Form5(Form4 formFrm)//这个构造方法里有参数
{
form4 = formFrm; //这个必须要有
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
form4.StrLabel1 = this.textBox1.Text;
}
}
}
来自网络.....

浙公网安备 33010602011771号