社区
C#
帖子详情
父窗体事件调用不明子窗体的方法
zhou_chao_1
2007-09-28 02:04:27
各位好,小弟遇到了一个疑惑,我在一个父窗体里点击一个保存按钮,来保存我子窗体里的数据,子窗体有很多个(Form2,form3等),但每个子窗体里都有SAVE()方法来保存当前发生的数据.
...全文
402
19
打赏
收藏
父窗体事件调用不明子窗体的方法
各位好,小弟遇到了一个疑惑,我在一个父窗体里点击一个保存按钮,来保存我子窗体里的数据,子窗体有很多个(Form2,form3等),但每个子窗体里都有SAVE()方法来保存当前发生的数据.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xz_lm_fly
2007-09-28
打赏
举报
回复
有几个子窗体你就要定义几个事件了,上面只是个例子而已。
zhou_chao_1
2007-09-28
打赏
举报
回复
不过"this.SaveForm1 += new SaveInf(Form1.Save);"中的Form1难以确定,我的子窗体是不活动的,不能确定是某一个子窗体哦
Johen999
2007-09-28
打赏
举报
回复
你做事件的时候不用代理吗???
zhou_chao_1
2007-09-28
打赏
举报
回复
好像是可以行得通哦,谢谢各位了,感激不尽!
xz_lm_fly
2007-09-28
打赏
举报
回复
定义一个代理:
name space xxxx
{
public delegate void SaveInf();
}
然后在主画面里:
public event SaveInf SaveForm1;
在主画面实例化Form1的时候:
this.SaveForm1 += new SaveInf(Form1.Save);
主画面Save方法里:
if(SaveForm1 !=null)
{
SaveForm1 ();
}
zjh222
2007-09-28
打赏
举报
回复
利用一于类专门用于保存子窗体的数据不就行了
zhou_chao_1
2007-09-28
打赏
举报
回复
如何代理啊,能举一个实例吗?读书没有读好,让大家见笑了!
xz_lm_fly
2007-09-28
打赏
举报
回复
使用代理
zhou_chao_1
2007-09-28
打赏
举报
回复
谢谢楼上几位热诚帮助指点,其实我是想让系统统一,本来可以在子窗体的按钮事件来保存现在的数据到数据库中的,但是这样会比较花,我想做的跟EXCEL表格一样,点击工保栏的保存就可以保存表格数据了.想用一个方法来处理它,还是没有找出来.希望大家继续帮忙啊!
Johen999
2007-09-28
打赏
举报
回复
你是想点击父窗体上的按钮不弹出子窗体。然后就将子窗体的数据保存是吧?
goldli
2007-09-28
打赏
举报
回复
1、如果是菜单的话,可以采用合并菜单的办法
如果想将子窗体中的[工具]菜单项插入到父窗口中,应该这样做。
首先将子窗体中的[工具]选中,然后设置它的属性:
mergeAction = replace;
mergeindex = 1;{当然这也可为其实值}
然后在主窗体的菜单的相应位置插入[工具]菜单;如在第二位,将形成下面的结果。
[文件] [工具] [帮助]
这时选中工具,设置他的属性:
mergeindex = 1;
visible = false;
即可;
2、如果是按钮
1、可以在子窗体中添加事件,在主窗体中处理事件。
用button的click示例,代码如下:
public class ChildForm : System.Windows.Forms.Form
{
//。。。
public event EventHandler BtnClick;
//。。。
private void button1_Click(object sender, System.EventArgs e)
{
if(this.BtnClick != null)
{
this.BtnClick(sender,e);
}
}
}
public class MainForm : System.Windows.Forms.Form
{
private void button1_Click(object sender, System.EventArgs e)
{
ChildForm cldForm = new ChildForm();
cldForm.BtnClick+= new BtnClick(MainForm_BtnClick);
}
}
2、在ChildForm中设置公有Button,
代码如下
public Button button1;
在MainForm中绑定button1的Click事件
3、将ChildForm作为参数传递给MainForm,在MainForm中直接调用ChildForm中的方法。
3、如果是一个过程
((Form2)this.ActiveMdiChild).SayHello();//获得是对哪个窗体的引用,然后强制转换,再调用
zhou_chao_1
2007-09-28
打赏
举报
回复
好像用事件不行吧,我刚试一下,行不通,因为子窗体在要保存时没有发生事件引发!父窗体调用不了子窗体的事件啊!有没有高手指点一下迷津啊!
zhou_chao_1
2007-09-28
打赏
举报
回复
不好意思,可能是我没有讲清楚,我想通过父窗体的工具栏上的一个按钮来保存当前子窗体的数据到数据库中,其中,此子窗体的数据保存到数据库中可以用子窗体的SAVE()方法来完成.我想在按父窗体的那个按钮时来调用当前活动的子窗估的SAVE()方法.
Johen999
2007-09-28
打赏
举报
回复
没理解,你说的保存数据,是要插入数据库信息,还是单纯的保存一个文本啊???
Johen999
2007-09-28
打赏
举报
回复
初学者,关注,up
zhou_chao_1
2007-09-28
打赏
举报
回复
能够举一个例子吗?小弟刚学C#不久.在主窗体里建一个事务包涵子窗体的SAVE()方法吗?现在子窗体是活动,保存当前活子窗体的数据.
peng_hai_lin
2007-09-28
打赏
举报
回复
建立一个事务
事务处理
zhou_chao_1
2007-09-28
打赏
举报
回复
请问各位有什么好的方法可以实现这个,在VB.net中可以用重载,C#好像不行啊.(申明一下,子窗体是不确定的Form)
xwk789xwk
2007-09-28
打赏
举报
回复
帮顶一下
silverlight 对ChildWindow返回给
父
窗体
值的理解
有时候在项目中需要弹出
子
窗体
进行一些操作,然后将操作的值返回到
父
窗体
中。 下图是
子
窗体
的界面(比较粗糙。。。。) 下面贴出其代码:
子
窗体
前台代码 1 <controls:ChildWindow x:Class=...
Windows进程间共享socket与窗口句柄的体会
1
父
进程通过
调用
::CreateProcess创建并运行
子
进程,应该在参数中指明
子
进程要继承
父
进程的句柄。这样通过命令行参数传给
子
进程的SOCKET与HWND,才仍然在
子
进程中能用。 2 有些Windows消息,如WM_COPYDATA、WM_...
win32实现两个透明窗口联动
win32实现两个透明窗口联动 在上一篇博客中,我已经完成了一个对某个颜色值透明的win32窗口,存在一个很大的缺陷:透明部分是无法响应鼠标...在查阅了大量资料也没有发现详细的解决
方法
后,决定记载一下我的解决
方法
。
面向对象7大设计原则
第1章 单一职责原则(SRP) 单一职责原则的英文名称是SingleResponsibilityPrinciple,...●变更引起的风险降低,变更是必不可少的,如果接口的单一职责做得好,一个接口修改只对相应的实现类有影响,对其他的接口无...
面向对象程序设计(OOP)的三大基本特征(定义、特性、优缺点、java中的表现形式及应用)和五大基本原则
不需要知道网络的具体底层搭建,计算机的基本结构组成(这些可以看作被封装)。 对于编程来说:将对象的属性(状态)和
方法
(行为)封装成一个类。而这个类可以有很多对象。举例:人这个类(class),可以有很多...
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章