子窗口中单击一个按钮,改变了数据,现在要实现它的父窗口上的数据做相应的变化。。应该是子窗口单击按钮的时候生成一个事件,父窗口注册这个事件,子窗口激活这个事件,但是不知道怎么实现。。能不能给提示!网上找到说用观察着模式,但是不会用啊
解决方案 »
- 数据库读乱码
- 在DataGridView里显示两个有关联表的字段
- 求Repeater 如何在显示的列上加链接!
- CollectionBase的OnRemoveComplete重载问题。在Design更改显示界面时
- C#的一个winform程序,希望大家能给点意见
- c# 如何使用非托管组件
- 有什么软件可以监视进程行为的
- 请教:c#中如何实现两个类的相互使用?
- clickOnce 客户更新问题。
- 一个class的object作为方法的参数,在方法内改变object的值,调用该方法后,object值是否改变?请指教
- wpf 选项卡带关闭按钮的TabControl
- C# WinFrom DataGridView绑定后不显示数据
另一种方法就是使用委托来实现。首先在子窗体中定义一个委托,然后在父窗体初始化子窗体时将子窗体希望调用的父窗体方法绑定在子窗体上。就可以了。代码如下: //父窗体form1 子窗体form2//父窗体方法 send();//子窗体方法定义委托public delegate void rshowgysmb();//定义委托public rshowgysmb showgys;//定义委托实现类//调用父窗体中的方法private void useparent(){ if(showgys!=null){showgys();}}//父窗体中的方法:显示子窗体private void showchildform(){ form2 f=new form2(); f.showgys+=new form2.rshowgysmb(send);f.showdialog();}这是我整理的。你看看是不是你要的
这个第一种方法中,parentform parentform=new parentform();这句话是放在子窗口中声明的吧。如果子窗口是带有参数的,是不是不能用这种方式来实现了
private static MainForm mainForm;
public static MDIForm
{
get
{
return mainForm;
}
} public MainFrom()
{
InitializeComponent();
mainForm= this;
} 子窗体调用 MainForm.MDIForm.方法
1.父窗体的Designer.cs文件中(以Lable为例)
public System.Windows.Forms.Label label1;
2。在子窗体中生成对象
父窗体名称 f=new 父窗体名称();
f.Lable1.Text="你好";