【C#】窗口之间通信
2015-05-31 10:47
316 查看
在进行C#开发时,不可避免要对多个窗口之间进行通信,一下列出六种基本的方法。
1、form1中传参数给form2,在form2中增加个构造函数,将参数传输。
如:string name;
form2 frm=new form2(name);
2、form1中传参数给form2,利用form2中public变量。
如:form2.cs 中
public string name;
form1.cs中:
3、继承
将form2继承form1 必然就可以得到form1中的信息。
4、运用delegate委托:
先在命名空间中定义一个delegate委托:public delegate void MyDelegate(string text);
而后在form2中定义一个MyDelegate变量:public MyDelegate my_event;
而在form1中创建form2时候定义my_event 对应的函数:
form2 frm = new form2();
frm.my_event = new MyDelegate(frm2_event);
frm.show();
在form1中定义frm2_event函数:
private void frm2_event(string text)
{
messageBox.show(text);
}//定义form2中的my_event对应函数。
在form2 中使用 该函数 :
比如在鼠标单击时用该函数:在鼠标左键单击事件中写入:my_event(this.textbox1.text);将form2中的string 类型变量传送到form1中。(可用于创建了的窗体间的通信)
5.运用static 全局类;这种方法比较笨,以本人做C++的经验来看,很多公司都是不乐意去使用全局变量,这样在大 工程中,全局类容易弄混,只是必须避免的。但是不得不说,在对于一些小工程的时候,全局类是很基础,也是很 实用的。同时全局类 配上timer定时器是能够实现时时通信,解决了 创建后的通信。
6.运用windows API 就是使用SendMessage,PostMessage等API函数。
这种方法适用于windows操作系统中。同时不管在C#、还是MFC中都很是适用。
1、form1中传参数给form2,在form2中增加个构造函数,将参数传输。
如:string name;
form2 frm=new form2(name);
2、form1中传参数给form2,利用form2中public变量。
如:form2.cs 中
public string name;
form1.cs中:
string name=“get”; form2 frm=new form2(); frm.name=name;
3、继承
将form2继承form1 必然就可以得到form1中的信息。
4、运用delegate委托:
先在命名空间中定义一个delegate委托:public delegate void MyDelegate(string text);
而后在form2中定义一个MyDelegate变量:public MyDelegate my_event;
而在form1中创建form2时候定义my_event 对应的函数:
form2 frm = new form2();
frm.my_event = new MyDelegate(frm2_event);
frm.show();
在form1中定义frm2_event函数:
private void frm2_event(string text)
{
messageBox.show(text);
}//定义form2中的my_event对应函数。
在form2 中使用 该函数 :
比如在鼠标单击时用该函数:在鼠标左键单击事件中写入:my_event(this.textbox1.text);将form2中的string 类型变量传送到form1中。(可用于创建了的窗体间的通信)
5.运用static 全局类;这种方法比较笨,以本人做C++的经验来看,很多公司都是不乐意去使用全局变量,这样在大 工程中,全局类容易弄混,只是必须避免的。但是不得不说,在对于一些小工程的时候,全局类是很基础,也是很 实用的。同时全局类 配上timer定时器是能够实现时时通信,解决了 创建后的通信。
6.运用windows API 就是使用SendMessage,PostMessage等API函数。
这种方法适用于windows操作系统中。同时不管在C#、还是MFC中都很是适用。
相关文章推荐
- c#调用COM组件
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#通用邮件发送类分享
- C#中Equality和Identity浅析
- C#生成饼形图及添加文字说明实例代码
- C#判等对象是否相等的方法汇总
- C#简单的向量用法实例教程
- C#托管堆对象实例包含内容分析
- C#实现按照指定长度在数字前补0方法小结
- C#虚方法的声明和使用实例教程
- C#获取文件夹及文件的大小与占用空间的方法
- C#定义简单的反射工厂实例分析
- C#数字图象处理之肤色检测的方法
- C#实现用于操作wav声音文件的类实例
- C#选择排序法实例分析
- C#线程间不能调用剪切板的解决方法
- C#实现WinForm捕获最小化事件的方法