C# WinForm 关闭“编辑信息”窗体后,另一个窗体里面的控件数据如何能刷新?
例子:如果我要编辑一条记录,当我在“编辑”窗体中修改完毕并且保存所做的修改后,“编辑窗体”会自动关闭,但是原先打开的“编辑”窗体中的那个窗体(“编辑“窗体的前一个窗体)里...
例子:如果我要编辑一条记录,当我在“编辑”窗体中修改完毕并且保存所做的修改后,“编辑窗体”会自动关闭,但是原先打开的“编辑”窗体中的那个窗体(“编辑“窗体的前一个窗体)里面的数据无法刷新数据。
问:如何才能在我进入”编辑“窗体修改并保存到数据库后,将前一个窗体中的Data grid view控件里面的数据进行自动更新?
【请注意:这段自动更新数据的代码主要是是在”编辑“窗体内的事件里面写】
补充一下!!!
第一:不能用Timer控件处理。
第二:不能使用将”编辑“窗体中的相关值传入上一个窗体中的Datagridview控件中,这种方法。 展开
问:如何才能在我进入”编辑“窗体修改并保存到数据库后,将前一个窗体中的Data grid view控件里面的数据进行自动更新?
【请注意:这段自动更新数据的代码主要是是在”编辑“窗体内的事件里面写】
补充一下!!!
第一:不能用Timer控件处理。
第二:不能使用将”编辑“窗体中的相关值传入上一个窗体中的Datagridview控件中,这种方法。 展开
展开全部
不知道,你的主窗体的Datagridview控件数据,是否直接绑定的DataSource
示例图片:
改变前
改变后
以下示例:
private void dataGridView1_DoubleClick(object sender, EventArgs e)
{
if (dataGridView1.CurrentRow != null)
{
//获取当前行绑定的数据
object _objEditItem = dataGridView1.CurrentRow.DataBoundItem;
if (_objEditItem is DataRowView)
{
fmEdit formEdit = new fmEdit((DataRowView)_objEditItem);
formEdit.ShowDialog(this);
}
}
}
PS:demo代码中,我的Datagridview控件使用的数据源是DataTable,如果你是其他的类型,那么,判断以下DataBoundItem的类型即可。
然后,在其他窗口中,直接修改DataBoundItem的数据,那么,主窗体的Datagridview控件数据也会跟着改变。
展开全部
在编辑窗口中定义一个事件。
绑定原窗口的刷新函数
在编辑窗口的保存按钮中调用这个事件
绑定原窗口的刷新函数
在编辑窗口的保存按钮中调用这个事件
追问
能不能用代码 解释一下?我还是个新手。
追答
class FrmEidt
{
private delegate void RefreshEventHandler()
public event RefreshEventHandler Refresh;
............
保存函数()
{
。。。。。。保持成功后
Refresh();
}
}
class FrmMain
{
刷新控件();
调出编辑窗口()
{
FrmEidt edit=new FrmEidt();
edit.Refresh+= 刷新控件();
edit.ShowDiaglog();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
主窗体中把绑定的方法定义为public或internal,打开子窗体里用"子窗体.show(this)",把主窗体本身 为“所有者窗体”引用传递给子窗体,子窗体在必要时,找到主窗体实例,调用其公开的绑定方法即可:
假定父窗体为Form1
...
if(this.Owner!=null)
{
Form1 fm = (Form1)this.Owner;
fm.绑定数据方法();
}
假定父窗体为Form1
...
if(this.Owner!=null)
{
Form1 fm = (Form1)this.Owner;
fm.绑定数据方法();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义一个event 然后在另一个窗体里监听你要关闭的这个
当窗体关闭时 事件发送通知 另一个窗体里就接收到了
event 很好用的。
当窗体关闭时 事件发送通知 另一个窗体里就接收到了
event 很好用的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询