关于C#反射调用刷新父窗体问题
各位老师,我遇到的难题是这样:一个窗体通过反射调用方式调出另一个窗体(特别说明:是个dll,且与父窗体不是同一个项目中的,调用方式也不能用showdialog方式,所以父...
各位老师,我遇到的难题是这样:
一个窗体通过反射调用方式调出另一个窗体(特别说明:是个dll,且与父窗体不是同一个项目中的,调用方式也不能用showdialog方式,所以父窗体接收不到DialogResult),我想在子窗体中修改数据库值后,父窗体将自动刷新相应控件的值。 展开
一个窗体通过反射调用方式调出另一个窗体(特别说明:是个dll,且与父窗体不是同一个项目中的,调用方式也不能用showdialog方式,所以父窗体接收不到DialogResult),我想在子窗体中修改数据库值后,父窗体将自动刷新相应控件的值。 展开
3个回答
展开全部
我觉得你说的子窗体是反射出来的,那么你应该是将它转化为一个form再调用showdialog吧,否则它怎么弹出来呢,你的意思是用show()?
子窗体修改数据库的值后,父窗体要自动刷新应该要有个类似通知的机制得到消息,
传统的方案有
1. 子窗体有父窗体的句柄或是引用,调用父窗体的刷新方法
2.父窗体上设有消息接口的实现,子窗体向消息队列发送消息,
3.或是父窗体邦定一个到子窗体上一个数据更新的事件.
4.通过windows api发送消息
5.父窗体上设有定时器,自动刷新服务数据
6. 其他 网络通讯端口.....
那么这要看你的方案中,应该采用哪种机制比较合适,我觉得如果你这个dll最好有个接口,这个接口实现两个方法
interface Imsg{
Show(); // 调用 弹出窗口
event changed; //数据更新后触发事件
}
这样的话你的父窗体就爽爽的了,只靠这两个方法就可以实现你所要的效果了
恩 大概就是这个思路 具体你还有根据你的项目进行考虑
子窗体修改数据库的值后,父窗体要自动刷新应该要有个类似通知的机制得到消息,
传统的方案有
1. 子窗体有父窗体的句柄或是引用,调用父窗体的刷新方法
2.父窗体上设有消息接口的实现,子窗体向消息队列发送消息,
3.或是父窗体邦定一个到子窗体上一个数据更新的事件.
4.通过windows api发送消息
5.父窗体上设有定时器,自动刷新服务数据
6. 其他 网络通讯端口.....
那么这要看你的方案中,应该采用哪种机制比较合适,我觉得如果你这个dll最好有个接口,这个接口实现两个方法
interface Imsg{
Show(); // 调用 弹出窗口
event changed; //数据更新后触发事件
}
这样的话你的父窗体就爽爽的了,只靠这两个方法就可以实现你所要的效果了
恩 大概就是这个思路 具体你还有根据你的项目进行考虑
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询