1 / 10
文档名称:

总结计划中窗体间传递数据几种方法.doc

格式:doc   大小:344KB   页数:10页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

总结计划中窗体间传递数据几种方法.doc

上传人:雨林书屋 2021/6/19 文件大小:344 KB

下载得到文件列表

总结计划中窗体间传递数据几种方法.doc

文档介绍

文档介绍:总结 C# 中窗体间传递数据的几种方法 (由别人的方法整理)
在编写 C#windows 应用程序的时候我们经常会遇到这种问题,怎么样在两个窗体间传递数据
呢以下是我整理的网上的各种方法,在遇到一个实际问题:
在 form1
中打开一个 form2
窗口作
为录入界面,将录入的值经转换后在
form1 中显示。
采用了委托的方法,可以实现。(与
VC
的回调的应用相似)
1.可以通过委托的方法来解决
问题:通过
form1 做一个录入界面
,将里边通过文本框录入的数值复值给
form2 中的 listview
各列,用 3
个举例吧,分别对应
listview 的 3 个列。
可以这么做
,如果两个窗体是在同一个命名空间下
定义一个代理 ,注意这个代理是全局的 :(即同一命名空间下,与 Form1 , Form2 平级的)
public delegate void MyInvoke(string Item1,string Item2,string Item3);
.);
(this);
然后将 Form1 的构造函数改成可以接收几个参数的就行了。
2.假如主框架为 Form1 ,打开的搜索对话框是
Form2.
直接在
Form2 类中申明一个
Form1

例: Form1 f1=new Form1();
然后就可以通过
f1 来调用
Form1
中的域和函数了。其实不是这
样的,你申明的新的 Form1
实例不是原来的那个
Form1
对象了,这样操作的是新的
Form1

的域和函数,和最先打开的
Form1 是没有关系的。
我们要做的是把当前的 Form1 实例传递给 Form2 ,如果是这样的话,问题就很好解决了。
方法 1:首先,我们在 Form2 中定义:
private Form1 mF_Form
我们更改 Form2 的构造函数为有参数的
public Form2 ( Form1 myForm )
{
2 f2 f1 fMain.);
(this);
然后将 Form1 的构造函数改成可以接收几个参数的就行了。
2.假如主框架为 Form1 ,打开的搜索对话框是
Form2.
直接在
Form2 类中申明一个
Form1

例: Form1 f1=new Form1();
然后就可以通过
f1 来调用
Form1
中的域和函数了。其实不是这
样的,你申明的新的 Form1
实例不是原来的那个
Form1
对象了,这样操作的是新的
Form1

的域和函数,和最先打开的
Form1 是没有关系的。
我们要做的是把当前的 Form1 实例传递给 Form2 ,如果是这样的话