子窗体如何操作父窗体的dataset???包括添加修改操作。
请高手帮帮忙
请高手帮帮忙
解决方案 »
- 有无人用C#写外挂呢?我想写个DNF的外挂吖,哈哈,有无高手给段代码学习学习吖!
- 在C#.NET中有两个窗体form1 form2,form1为启动窗体,怎样才能做到从窗体1打开窗体2同时关闭窗体1呢?
- c#中如何实现delphi那样: 可以直接在IDE环境上编写数据集的事件过程(如:afterInsert等)
- 各位高手帮帮忙!
- 关于db文件问题
- 请教如何实现右键菜单菜单选中的功能,在DataGrid(winform)里面??
- MVC5 自带的个人身份验证中 var result = await UserManager.UpdateAsync(TUser) 这个方法如何使用?
- 写好的程序有发布的地方么?
- 大家用哪些编辑器看代码,推荐一个最好的(不要讲notepad、wordpad、office、以及开发工具附带的)
- 怎样防止mdi子窗体多次打开同一个?
- 关于.net2003 的web打包问题(水晶报表)
- 如何将dataset中的数据绑定到textBox中,并利用textBox来操作dataset
参考一下
网络上有几种方法,先总结如下:
调用窗体(父):Form1,被调用窗体(子):Form2
方法1: 所有权法
//Form1:
//需要有一个公共的刷新方法
public void Refresh_Method()
{
//...
}
//在调用Form2时,要把Form2的所有者设为Form1
Form2 f2 = new Form2() ;
f2.Owner = this;
f2.ShowDialog() ;
//Form2:
//在需要对其调用者(父)刷新时
Form1 f1 ;
f1 = (Form1)this.Owner;
f1.Refresh_Method() ;
方法2:自身传递法
//Form1:
//需要有一个公共的刷新方法
public void Refresh_Method()
{
//...
}
Form2 f2 = new Form2() ;
f2.ShowDialog(this) ;
//Form2:
private Form1 p_f1;
public Form2(Form1 f1)
{
InitializeComponent();
p_f1 = f1;
}
//刷新时
p_f1.Refresh_Method() ;
方法3:属性法
//Form1:
//需要有一个公共的刷新方法
public void Refresh_Method()
{
//...
}
//调用时
Form2 f2 = new Form2() ;
f2.P_F1 = this;
f2.Show() ;//Form2:
private Form1 p_f1;
public Form1 P_F1
{
get{return p_f1;}
set{p_f1 = value;}
}
//刷新时
p_f1.Refresh_Method() ;
方法4:委托法
//声明一个委托
public delegate void DisplayUpdate();
//Form1:
//需要有一个公共的刷新方法
public void Refresh_Method()
{
//...
}
//调用时
Form2 f2 = new Form2() ;
f2.ShowUpdate += new DisplayUpdate(Refresh_Method) ;
f2.Show() ;
//Form2:
//声明事件
public event DisplayUpdate ShowUpdate;
//刷新时,放在需要执行刷新的事件里
ShowUpdate();
dataset是引用对象,你只需在创建子窗体的地方,把父窗体的dataset传递给子窗体就行了,你用子窗体的Tag也行,在子窗体定义一个Public类型的dataset对象也行(这时并不需要那new),那么你在子窗体操作这个dataset对象,就是父窗体的dataset对象本身。
任何一个子窗体就都可以调用拉。