窗体中调用主窗体的方法和控件

摘要:
最简单的方法是在Form1中写入Form2frm=newForm2();Form2中的非静态变量可以通过frm删除,但无法控制Form2中的控件,也无法获取控件的值。使用全局变量降低代码的可读性,获取Form1的文本框值并将其传递给Form2。目前,我只有两个麻烦的方法。1.看起来最简单的是form2:publicstringvalue;publicForm2(字符串){InitializeComponen

通过最简单的 在Form1 中写 Form2 frm=new Form2();可以通过frm掉用Form2中的非静态变量.但不能控制Form2的控件.也不能获取控件的值.用全局变量降低代码可读性,获取窗体1的textbox值并传递给窗体2,目前我只会2种麻烦的方法.

1.看似最简单的, 

form2:

public string value;

public Form2(string m)

{InitializeComponent();

value=m;

}

form1;

Form2 frm=new Form2(Form1.textbox1.text);

这个实现了把Form1的textbox1.text 赋值给了Form2中的value.

这个方法不能传递方法,会占用很多资源.我还不知道如何用这个传递方法,委托.

第2种;

使用委托,委托对应相应的方法,调用方法的返回类型和传入参数必须和委托声明的类型一致.

转载:http://www.cnblogs.com/pfcan66/archive/2012/09/12/2680596.html

1.Form1:

public string  a(string k)

{

retrun "Form1方法 "+k;

}

2.在Form2中建立和a方法一样类型的委托对象实例化

public  delegate string  weituo(string m)--建立委托

public weituo b  --实例化委托 

3.在Form1中的Form_Load或者其他事件下写(如buton)

Form2 frm=new Form2();

frm.b=a;--把a 方法添加到委托b上

4.在Form2中调用委托b;

textbox.text=b("这是Form2页面");

运行结果:

窗体中调用主窗体的方法和控件第1张

委托方法就是每次调用不同类型方法都要重写一个.

----------------------------------类中调用主窗体的方法和控件------有时候不知道为啥不好使-----------------------------------------------

要调用的窗体:

public partial class Form1 : Form

public static Form1 form1;--建立静态

public Form1()
{
InitializeComponent();

form1=this

}

然后在类中:用 Form1.form.引用的方法

 就是this(属性,方法),this始终指向当前对象的.在C# 中,函数或者属性都应该属于一个对象

只要对对象中用this 就可以看到该对象的所有方法属性

免责声明:文章转载自《窗体中调用主窗体的方法和控件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇reduced penetrance|COPE-PCGjqgrid+bootstrap样式实践下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

什么是MBS,ABS和CDO

本质上,MBS、ABS和CDO都是资产证券化产品。因此,买方每月定期支付的款项是偿还MBS本金和利息的基础。在欧洲,MBS和CDO是资产证券化过程中增长最快的两个市场。与MBS相比,CDO的基础资产、SPV结构和管理法规更加多样化。在全球范围内,CDO交易市场约占所有资产证券化产品交易的40%。...

office 2016 专业版 删除部分组件

删除Office2016 Professional Edition####1中的一些组件。打开控制面板。2.单击此选项。3.找到Office2016并右键单击以选择更改。4.选择并确认。5.选择要删除的组件(以Access为例)。6.单击此处。7.单击“继续”。8.等等。9.完成此方法并不是真正删除模块。这意味着模块已禁用。如果您想在将来重新启用它,请重复前...

为服务中网关的作用

“API网关”核心组件是架构用于满足此些需求。API网关定位为应用系统服务接口的网关,区别于网络技术的网关,但是原理则是一样。API网关统一服务入口,可方便实现对平台众多服务接口进行管控,对访问服务的身份认证、防报文重放与防数据篡改、功能调用的业务鉴权、响应数据的脱敏、流量与并发控制,甚至基于API调用的计量或者计费等等。...

linux 安装nginx

1.检查服务器上是否安装了nginx:nginx v2。查看编译参数:nginxv3。查看安装目录:rpm-qlnginx4。查看配置文件:/etc/logrotate D/nginx5。在安装nginx之前,请确保系统中安装了gcc、pcre-devel、zlib-devel和openssl-devel。5.1如果安装了rpm软件包,您可以使用rpm qa...

JRebel 6 破解版及使用方法

2.解压下载的jrebel6.0.0-crack.zip、jrebel6.0 jar包和破解文件。假设文件在D:/jrebel步骤:1中解压缩。eclipse下载jrebe插件,可以在市场上下载。2.打开eclipse的窗口首选项jrebel,打开优势选项卡,并将jar包的路径指向D:/jrebel/jrebel.jar。用CMD打开DOS窗口,输入cd/d...

Github仓库重命名

1.在Github上重命名仓库,转到您自己的仓库,找到Setting标记,然后单击Options中的Settings以设置Repositoryname。2.修改本地仓库信息。由于远程仓库名称已更改,因此本地对应的仓库名称也应更改。1.检查当前远程仓库的信息$gitremote-v列出了所有远程仓库信息,包括网站地址。2.修改本地对应远程仓库的地址。修改后,使...