方法一:利用事件
父窗体中注册事件及事件处理程序(用于两个窗体):
private void btnAdd_Click(object sender, EventArgs e)
{
frmCustomer BabyWindow = new frmCustomer(); //实例化一个子窗体
BabyWindow.UpdateDataGridView += new EventHandler(BabyWindow_UpdateDataGridView); //注册事件
BabyWindow.ShowDialog();
}
public void BabyWindow_UpdateDataGridView(object sender, EventArgs e)
{
LoadData() //刷新父窗体中内容
}
子窗体中定义事件及触发事件:
public event EventHandler UpdateDataGridView = null;//定义一个处理更新DataGridView控件内容的方法
protected void UpdateData()
{
if (UpdateDataGridView != null)//当触发更新DataGridView事件时
{
UpdateDataGridView(this, EventArgs.Empty);//更新DataGridView控件中的内容
}
}
public void Add() //子窗体中点击新增按钮时,触发事件
{
UpdateData();
}
方法二,定义窗体变量(用于多个窗体之间)
1、FormMain窗体中定义其他两个窗体变量,注册事件以及事件处理程序
frmUserList _frmUserList = null; //定义frmUserList 窗体变量
frmHID fHID = null; //定义frmHID窗体变量
private void FormMain_Load(object sender, EventArgs e) //加载fHID
{
fHID = new frmHID (); //实例化一个子窗体
fHID .Show();
}
private void btnAdd_Click(object sender, EventArgs e) //FormMain主窗体中菜单操作代码
{
_frmUserList = new frmCustomer(); //实例化一个子窗体
_frmUserList .UpdateDataGridView += new EventHandler(load_Click); //注册事件
_frmUserList .ShowDialog();
}
public void load_Click(object sender, EventArgs e) //A
{
fHID.loadUser_Click(); //刷新其他窗体中的内容 //此处执行至B处
}
2、 要刷新的窗体中(frmHID )中定义刷新代码:
public void loadUser_Click() //B
{
//加载类型
ipdUser_Load();
tbUser.txtValue.Text = "所有";
}
3、触发刷新的窗体中(frmUserList )中定义事件及触发事件:
public event EventHandler UpdateDataGridView = null;//定义一个处理更新DataGridView控件内容的方法
protected void UpdateData()
{
if (UpdateDataGridView != null)//当触发更新DataGridView事件时
{
UpdateDataGridView(this, EventArgs.Empty); //此处执行至A处
}
}
public void Add() //子窗体中点击新增按钮时,触发事件
{
UpdateData();
}