有两个窗体 第一个负责用DataGridView显示数据--它负责数据的select insert update
第二个负责增加修改数据(双击DataGridView可以获得数据进行修改)
问怎么写才能在第二个窗口操作完成点击保存时 第一个窗口实时完成insert或者update呢?
谢谢大侠们帮帮小弟!!!
第二个负责增加修改数据(双击DataGridView可以获得数据进行修改)
问怎么写才能在第二个窗口操作完成点击保存时 第一个窗口实时完成insert或者update呢?
谢谢大侠们帮帮小弟!!!
以前做过一个这样的东西。就是利用获得焦点的事件实现的。
public class Form1:Form
{
//你要最终想要调用的方法
public void insert(string 参数)
{
}
public void update(string 参数)
{
}
//把第二个窗口打开
private void ShowForm2()
{
Form2 f = new Form2(this);
} }
public class Form2:Form
{
Form1 f;
public Form2(Form f)
{
this.f = f;
}
//假设这个就是你的“第二个窗口操作完成点击保存”的事件
private void ButtonClick()
{
f.insert("参数");
f.update("参数");
}
}
Form1:
prvite void UpdataGridView()
{
//更新方法
} private void botton1_Click(object sender, EventArgs e)
{//显示Form2
Form2 f2 = new Form2();
f2.Updata += new UpdataHander(UpdataGridView)
f2.show();
}
Form2:
public delegate void UpdataHander();
public UpdataHander Updata;private void botton1_Click(object sender, EventArgs e)
{//修改gridview
//修改代码 Updata();
}
直接写的估计出错,自己在调调
// 使用委托调用主窗体的刷新按钮,刷新dataGridview
public delegate void UseButton(object sender, EventArgs e);
public event UseButton NewEvent;子窗体操作按钮下执行事件
//执行事件
if (NewEvent != null)
NewEvent(this, new EventArgs());
主窗体Show子窗体时订阅事件
//订阅更新事件
frm.NewEvent+=new frmGoodsChild.UseButton(btnQuery_Click);
改为
Form2:
public delegate void UpdataHander();
public event UpdataHander Updata;
2.Form2中执行insert,update,调用Form1中的BindData()刷新Form1的DataGridView
3.创建委托类型:public delegate void MyDelegate();
4.Form2的构造方法:(Form2中加入成员:MyDelegate myDelegate;)
Form2(MyDelegate myDelegate)
{
this.myDelegate = myDelegate;
}
5.创建Form2时:
MyDelegate myDelegate = new MyDelegate(BindData);
Form2 form2 = new Form2(myDelegate);
form2.Show();
6.在Form2的保存按钮中执行: myDelegate();// 此时即执行了Form1中的BindData,从而刷新了DataGridView。