三个窗体之间互传数据
来源:互联网 发布:淘宝生活用品 编辑:程序博客网 时间:2024/06/15 23:02
目前开发项目中有如下需求:
A窗体的某个事件打开B窗体,B窗体的某个事件打开C窗体,现在在C窗体上的操作,需要将某个数据传递给A窗体,比如C窗体的MouseMove事件的坐标e.X,现在将其传给A窗体,如何操作呢?
一、首先,如果没有A窗体,需求为e.X传给B窗体,则关键代码如下:
C窗体中定义,委托和事件:
public delegate void OnMousePositionMoveDel(int X);
public OnMousePositionMoveDel OnMousePositionMoveEvent;
在C窗体的MouseMove事件中,触发该事件,并传递参数:OnMousePositionMoveEvent(e.X);
B窗体实例化C窗体的地方挂载C窗体事件:CForm frm=new CForm();
frm.OnMousePositionMoveEvent+=MouseMoveMethod;
B窗体中定义接受C窗体事件参数的方法private void MouseMoveMethod(int X)
{
//到此,C窗体的参数e.X已经通过参数X传递过来
}
二、现在设计到三个窗体,我的做法是
1、在B窗体中定义与C窗体类似的委托和事件:
public delegate void OnMousePositionMoveDel2(int X);
public OnMousePositionMoveDel2 OnMousePositionMoveEvent2;
2、B窗体实例化C窗体的地方挂载C窗体事件:CForm frm=new CForm();
frm.OnMousePositionMoveEvent+=MouseMoveMethod;
B窗体中定义接受C窗体事件参数的方法private void MouseMoveMethod(int X)
{
//这里继续触发事件,以便传给窗体A
OnMousePositionMoveEvent2(X);
}
3、A窗体实例化B窗体的地方挂载B窗体事件:BForm frm=new CForm();
frm.OnMousePositionMoveEvent2+=MouseMoveMethod;
A窗体中定义接受C窗体事件参数的方法private void MouseMoveMethod(int X)
{
//到此,C窗体的参数e.X已经通过参数X传递过来,其实是通过B窗体,再传递给A窗体的
}
三、不知道这种做法是否合适?或者是否为最佳实践,请大家赐教!
- 三个窗体之间互传数据
- 窗体之间互传数据
- 窗体之间传递数据
- 两窗体之间传递数据
- 窗体之间如何传递数据
- C#窗体之间传递数据
- 窗体之间数据的传递
- C#中窗体之间的数据传递
- 关于两个窗体之间交换数据
- C#中窗体之间的数据传递
- C#中窗体之间的数据传递
- C#中窗体之间的数据传递
- WinForm窗体之间数据传递的方法
- C#不同窗体之间的数据传递
- 谈谈窗体之间的数据交互
- Matlab GUI,窗体之间传递数据
- MDI窗体,子窗体之间的数据传递
- ASP.NET如何在窗体和窗体之间传送数据
- Java:对集合中的对象进行排序需要实现Interface Comparable接口并实现int compareTo(T o)方法
- 继电器电磁干扰的分析及抑制
- 系统架构与实现的验收工作摘要
- c语言实现线程池
- 函数指针与typedef
- 三个窗体之间互传数据
- 像管理者一样工作和思考
- 浮点数表示法
- HP大中华区总裁孙振耀退休感言
- 给centos 5.6安装最新版本的内核(kernel-2.6.38.2)
- poj1160——Post Office//dp
- .Net Framework在Windbg下初级调试(二)
- apply,call备忘
- 初始化和清除~~~从构造和析构说起