




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、方法一:C#中没有了像VB.Net中的全局变量,那么我们如何实现在不同的页面间传递参数呢?下面举例说明如何实现这一功能.1.新建一个项目.2.在该工程中添加一个窗体Form1.3.在该窗体中定义静态型字符串变量myTestStr1:public static string myTestStr1=""4.在该窗体的构造函数中对该变量进行赋值,并为该窗体类添加属性GetStrValue.public Form_Form1()InitializeComponent();myTestStr1="Hello!"public string GetStrValuege
2、treturn myTestStr1;setmyTestStr1=value; 5.在该工程中另添加一个窗体Form2.6.在Form1窗体上添加一个button按钮(name:but_Test);7.在Form1窗体的but_Test_Click 事件中添加以下代码:private void but_Test_Click(object sender, System.EventArgs e)Form2 frm1=new Form2();frm1.ShowDialog(this) ;frm1.Close();8.在Form2
3、窗体上添加一个button按钮(name:but_Yes);9.在Form1窗体的but_Yes_Click 事件中添加以下代码:private void but_Yes_Click(object sender, System.EventArgs e)MessageBox.Show (Form_Form1.myTestStr1 ); /直接访问. 显示.结果:" Hello!"Form_Form1 frm2=new Form_Form1();frm2.GetStrValue ="How do you do?"
4、; /生成一个新的实例对该静态变量进行操作(修改该静态变量的值).MessageBox.Show (frm2.GetStrValue );
5、60; /通过该实例的内部成员对它进行访问 .显示.结果: How do you do?"MessageBox.Show (Form_Form1.myTestStr1 ); /直接访问. 显示.结果:" How do you do?"方法二:进入VS2005后,大家可以发现子窗体操作父窗体不能沿用2003下的方法:把
6、父窗体的空间访问属性由private改为public.IDE已经把控 件声明这部分代码隐藏了,所以只有采用更加对象一点的方法。父窗体与子窗体间的参数传递我采用的步骤如下:1 父窗体中声明一个静态的父窗体类型的临时对象public static frmFather frmFatherTemp;2 父窗体构造函数中对该变量赋值public frmFather()InitializeComponent();frmFatherTemp = this;3 把要传递的参数设置为父窗体的一个属性,并设置访问器。访问其的set方法中进行了参数与父窗体控件绑定的操作。private string testVal
7、ue;public string TestValueget return testValue; set this.testValue = value;this.txtFather.Text = value;4 父窗体参数传递事件中对要传递的参数赋值,并打开子窗体。父窗体的工作到此结束。this.TestValue = this.txtFather.Text;frmSon frm = new frmSon();frm.ShowDialog();5 子窗体构造函数中设置传递参数与子窗体控件的绑定操作public frmSon()InitializeCo
8、mponent();this.txtSon.Text = frmFather.frmFatherTemp.TestValue;6 子窗体回传事件中,对父窗体的临时对象的该参数属性赋值private void btnSon_Click(object sender, EventArgs e)frmFather.frmFatherTemp.TestValue = this.txtSon.Text;this.Close();ok。一切搞定!全部代码如下:frmFather.csusing System;using System.Collections.Generic;using System.Comp
9、onentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace winFormParameterPasspublic partial class frmFather : Formpublic static frmFather frmFatherTemp;private string testValue;public string TestValueget return testValue; set thi
10、s.testValue = value;this.txtFather.Text = value;public frmFather()InitializeComponent();frmFatherTemp = this;private void btnFather_Click(object sender, EventArgs e)this.TestValue = this.txtFather.Text;frmSon frm = new frmSon();frm.ShowDialog();frmSon.csusing System;using System.Collections.Generic;
11、using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace winFormParameterPasspublic partial class frmSon : Formpublic frmSon()InitializeComponent();this.txtSon.Text = frmFather.frmFatherTemp.TestValue;private void btnSon_Click(object s
12、ender, EventArgs e)frmFather.frmFatherTemp.TestValue = this.txtSon.Text;this.Close();-分割线-public static int myPI = 3.14; 这样就可以在工程中的任何地方引用这个全局变量了 应用方法,类名.myPI另外方法:Form2 form2=new Form2(this);很多人都苦恼于如何在子窗体中操做主窗体上的控件,或者在主窗体中操做子窗体上的控件。相比较而言, 后面稍微简单一些,只需在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。 下面重点引见前一种,目前常见的有两种方法,基本
13、上大同小异:第一种,在主窗体类中定义一个静态成员,来保存当前主窗体对象,例如:public static yourMainWindow pCurrentWin = null; 然后在主窗体构造函数中,给静态成员初始化,如下:pCurrentWin = this; 那么在子窗体中调用父窗体,能够通过“主窗体类名. pCurrentWin”来操做当前的主窗体。第二种,是在子窗体中定义一个私有成员,来保存当前主窗体对象,例如:private yourMainWindow pParentWin = null; 然后在子窗体构造函数中,加一参数,如下:public yourChildWindow( yourMainWindow WinMain )pParentWin = WinMain;/Other code 在主窗体创建子窗体的时候,要把this做为参数来构造子窗体,这样在子窗体中调用父窗体,能够间接用“this.pParentWin”就能够了不过以上所做的,只是让你能够访问当前主窗体对象,那么如何操做控件,很多人间接修改控件的成员访问符,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年行政执法资格考试行政法律法规知识考试题库及答案(共150题)
- 国防教育法教学
- 项目质量管理年终总结
- 语文-2021年武汉市洪山区卓刀泉小学小升初语文考试真题
- 预防儿童凌辱主题班会
- 集装箱基本知识介绍
- (高清版)DB12 046.55-2011 产品单位产量综合能耗计算方法及限额 第55部分:冰箱压缩机
- (高清版)DB12 046.04-2011 产品单位产量综合能耗计算方法及限额 第4部分:转炉炼钢
- (高清版)DB12 596.2-2015 道路交通智能管理系统设施设置规范 第2部分:通 用技术要求
- 工作计划与进度跟踪表格-工作任务管理
- (八省联考)河南省2025年高考综合改革适应性演练 思想政治试卷合集(含答案)
- 2024年沈阳二手房交易协议模板
- DB33T 1134-2017 静钻根植桩基础技术规程
- 《餐巾折花图示》课件
- 南京市、盐城市2025届高三年级第一次模拟考试(一模)英语试卷(含答案)+听力音频
- DB12T 676.3-2016 高速公路联网收费技术要求 第3部分:非现金收费
- 国家标准装修合同(2025年)
- 医院感染管理制度培训
- 电影《白日梦想家》课件
- 2024年中职高考数学计算训练 专题10 解三角形的相关计算
- 电石(碳化钙)安全技术说明书
评论
0/150
提交评论