C#实现窗体间传值实例分析
本文实例分析了C#实现窗体间传值的方法。分享给大家供大家参考,具体如下:
1、VS 2005的Visual C# Windows应用程序和Visual C#智能设备Pocket PC 2003设备应用程序。
假设我们需要点击主窗体FMMain中的某一个按钮时打开子窗体FMChild并将某一个值传给子窗体FMChild,一般情况下,我们点击按钮显示子窗体FMChild的代码为:
FMChild fmChild = new FMChild(); fmChild.ShowDialog(); fmChild.Dispose();
如果我们需要将主窗体FMMain中的string strValueA的值传给FMChild,那么我们首先对strValueA进行如下处理:
private string strValueA; public string StrValueA { get { return strValueA; } set { strValueA = value; } }
使其成为主窗体FMMain的一个属性,接着修改显示子窗体的代码为以下两种的其中一种。
方法一:
FMChild fmChild = new FMChild(); fmChild.ShowDialog(this); fmChild.Dispose();
方法二:
FMChild fmChild = new FMChild(); FMChild.Owner = this; fmChild.ShowDialog(); fmChild.Dispose();
然后在修改子窗体FMChild中申明一个主窗体FMMain对象,
FMMain fmMain;
在需要使用主窗体FMMain的string strValueA的地方加上如下代码:
fmMain = (FMMain)this.Owner;
这样,就可以获得主窗体FMMain中strValueA的值了。
这时,如果你需要将子窗体FMChild中的string strValueB传给主窗体FMMain,同样处理string strValueB。
private string strValueB; public string StrValueB { get { return strValueB; } set { strValueB = value; } }
那么你在关闭子窗体代码fmChild.Dispose();后,可以写一些代码来保存或者处理FMChild的strValueB,例如:
string strTmp = fmChild.StrValueB;
注意,在Visual C#智能设备Pocket PC 2003设备应用程序中显示子窗体FMChild只能使用:
FMChild fmChild = new FMChild(); FMChild.Owner = this; fmChild.ShowDialog(); fmChild.Dispose();
在Visual C#智能设备Pocket PC 2003的设备应用程序中ShowDialog()没有重载。
希望本文所述对大家C#程序设计有所帮助。
相关推荐
-
C#,winform,ShowDialog,子窗体向父窗体传值
调用showdialog方法后,调用代码被暂停执行,等到调用showdialog方法的窗体关系后再继续执行.而且窗体可以返回一个dialogresult值,他描述了窗体关闭的原因,例如OK,Cancel,yes,no等.为了让窗体返回一个dialogresult,必须设置窗体的dialogresult值,或者在窗体的一个按钮上设置dialogresult属性. 例子: 下面是子窗体代码,要求输入phone,然后会返回给父窗体. using System; using System.Collect
-
C#传值方式实现不同程序窗体间通信实例
当Form2的AcceptChange按钮按下,需要修改Form1中ListBox中相应列的值,因此可以考虑同时将Form1中的ListBox控件当参数也传入Form2,所有修改工作都在Form2中完成,根据这个思路,Form2代码如下: 复制代码 代码如下: publicpartial class Form2 : Form { private string text; private ListBox lb;
-
c#窗体传值用法实例详解
本文实例讲述了c#窗体传值用法.分享给大家供大家参考.具体分析如下: 对于窗体间的数据传递,是刚开始从事.Net窗体应用程序开发人员碰到的一个常见问题,在此讲几个常见的实现方式.此节内容适用于模式窗体或非模式窗体,部分方式延伸到一般类的操作. (1)构造函数参数传递 通过构造函数传递参数应该是比较基本的参数传递方式,重载构造函数,通过带参数的构造函数来实例化窗体. 在窗体类内部定义参数变量, private object myParams; 实现构造函数, public OptionForm(o
-
C#跨窗体操作(引用传递) 实例代码
效果描述: 有三个窗体然后顺序分别是 (1)点击第一个窗体中的按钮弹出第二个窗体,隐藏第一个窗体 (2)第二个窗体到一定时间弹出第三个窗体 (3)点击第三个窗体的按钮关闭第三个和第二个窗体,弹出第一个窗体 From1 复制代码 代码如下: using System; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form {
-
C#简单实现子窗体向父窗体传值的方法
本文实例讲述了C#简单实现子窗体向父窗体传值的方法.分享给大家供大家参考.具体如下: 击Form1的button1 打开Form2 再点击Form2的button2 在button2_Click事件中 通过this.Owner将Form2的textBox2的值设置给Form1的textBox1 并关闭Form2 public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void bu
-
C#窗体传值实例汇总
本文实例汇总了C#窗体传值的方法.分享给大家供大家参考.具体方法如下: 1.静态变量传值,非常简单适合简单的非实例的 复制代码 代码如下: public calss form1:Form{ public static int A; } public class form2:Form{ form1.A=1; } 2.委托传值 复制代码 代码如下: public class form1:Form{ public int A{get;set;} public static Act
-
C#实现窗体间传递数据实例
本文以实例详述了C#两个窗体之间传递数据的实现方法,具体的操作步骤如下: 1.建立两个窗体,并采用公用变量值传递: public partial class Form1 : Form //父窗体 { public string name=""; public Form1() { InitializeComponent(); } private void newBtn_Click(object sender, EventArgs e) { Form2 form2 =new Form2()
-
C#实现两个窗体之间数值传送的方法
本文实例讲述了C#实现两个窗体之间数值传送的方法.分享给大家供大家参考,具体如下: 以下是本人常用的方法,其实方法很多,但我觉得这两种我比较好理解,要是哪位朋友有比较简单的易懂的其他方法,希望不吝赐教. 方法一: 比如要在FORM2里得到FORM1里的值,先在FORM1里定义一个公有的字符串 复制代码 代码如下: public string zhi="xxxxxx"; 然后FORM2里用FORM1去实例化一个对象 复制代码 代码如下: FORM1 f=new FORM1(); 最后用
-
C#实现窗体间传值实例分析
本文实例分析了C#实现窗体间传值的方法.分享给大家供大家参考,具体如下: 1.VS 2005的Visual C# Windows应用程序和Visual C#智能设备Pocket PC 2003设备应用程序. 假设我们需要点击主窗体FMMain中的某一个按钮时打开子窗体FMChild并将某一个值传给子窗体FMChild,一般情况下,我们点击按钮显示子窗体FMChild的代码为: FMChild fmChild = new FMChild(); fmChild.ShowDialog(); fmChi
-
WinForm窗体间传值的方法
本文实例讲述了WinForm窗体间传值的方法.分享给大家供大家参考.具体实现方法如下: 窗体间传递数据,无论是父窗体操作子窗体,还是子窗体操作符窗体,有以下几种方式: 1.公共静态变量: 2.使用共有属性: 3.使用委托与事件: 4.通过构造函数把主窗体传递到从窗体中: 一.通过静态变量 特点:传值是双向的,实现简单 实现代码如下: 在一个app类中定义一个静态成员value 复制代码 代码如下: public class app { public static string value
-
微信小程序页面传值实例分析
微信小程序页面传值实例分析 最近组里开发小程序,遇到了一个前端亘古不变的话题:页面传值 刚开始使用路径传参解决,但是众所周知: 各浏览器HTTP Get请求URL最大长度并不相同,几类常用浏览器最大长度及超过最大长度后提交情况如下: IE6.0 :url最大长度2083个字符,超过最大长度后无法提交. IE7.0 :url最大长度2083个字符,超过最大长度后仍然能提交,但是只能传过去2083个字符. firefox 3.0.3 :url最大长度7764个字符,超过最大长度后无法提交. Oper
-
php进程间通讯实例分析
本文实例讲述了php进程间通讯的方法.分享给大家供大家参考,具体如下: php单进程单线程处理批量任务太慢了,受不鸟了,但是php不能多线程,最终选择了多进程处理批量任务. php多进程主要使用for进行分裂,然后利用的unix/linux的信号量进行进程间通讯. 本例使用的是:生产者=>消费者=>收集器,的模式. <?php // ===== 全局变量 ===== // ipc进程间通讯 $key = ftok(__FILE__, "a"); $queue = ms
-
ASP.NET 窗体间传值的方法
假设ParentForm.aspx 页面上有TextBox1文本框和Open按钮点击Open按钮弹出SubForm.aspx,SubForm.aspx页面上有TextBox1文本框和Close按钮点击Close按钮关闭SubForm.aspx页面,并把子页面SubForm.aspx文本框的值显示到父页面ParentForm.aspx 的文本框上.父窗体前台代码: 复制代码 代码如下: <script type="text/javascript"> functi
-
C#窗体间常用的几种传值方式及委托与事件详解
前言 窗体间的传值,最好使用委托方式传值,开始之前,我们先来说一下委托与事件的关系. 委托:是一个类. 事件:是委托类型的一个特殊实例,只能在类的内部触发执行. 首先创建2个窗体,这里我们以form1为发送窗体,form2为接收窗体 form1窗体 form2窗体 方式一(最简单的方式) form1窗体代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;
-
微信小程序页面间传值与页面取值操作实例分析
本文实例讲述了微信小程序页面间传值与页面取值操作.分享给大家供大家参考,具体如下: 微信小程序页面间传值 1.js页面间的传值:url: ' 路径 ? 值='+ 获取该页面取值, 实例1: pageSkip :function(){ wx.navigateTo({ url: '/page/login/facte?shopsName='+this.data.shopsName, }) }, 实例2: pageSkip :function(){ wx.navigateTo({ url: '/page
-
JSP页面间传值问题实例简析
本文实例分析了JSP页面间传值问题.分享给大家供大家参考,具体如下: 其中最简单的要数<a>标签里面的href来传值了, 在a.jsp中写: <a href="b.jsp?name1=值"></a> 然后在b.jsp中接收: <% String name2 = new String(request.getParameter("name1").getBytes("ISO-8859-1"),"GBK
-
C#开发Winform实现窗体间相互传值
目录 一.前言 二.公共属性 三.公共方法 四.委托 1.定义一个委托 2.实例化一个此委托类型的事件 3.定义要执行的方法 4.将方法绑定到事件 5.触发委托 一.前言 我们在做Winform窗体程序开发的时候,会经常遇到窗体之间相互传值.假设有下面的一个场景:一个主窗体和一个子窗体,点击主窗体上面的按钮给子窗体传值,并在子窗体上面显示出来,一般会有如下几种方式实现. 二.公共属性 我们可以在子窗体里面定义一个公共的属性,然后在父窗体里面给公共属性赋值,这样可以实现窗体之间传值,子窗体代码如下
随机推荐
- Angular实现form自动布局
- iOS11 WKWebView内容过滤规则详解
- 获取磁盘IO与系统负载Load的shell脚本
- 浅谈json取值(对象和数组)
- C#正则实现Ubb解析类的代码
- 图解Spring框架的设计理念与设计模式
- yii2.0实现pathinfo的形式访问的配置方法
- PHP 类与构造函数解析
- PHP实现文件下载详解
- linux系统安装字体详细介绍
- Android ListView中动态添加RaidoButton的实例详解
- mysql同步问题之Slave延迟很大优化方法
- Linux下安装mysql-5.6.4 的图文教程
- ajax同步验证单号是否存在的方法
- FCK 编辑器焦点问题
- emule自动关机脚本
- 让您成为最失败的家长的八种行为
- 分享Linux 系统生成随机密码的10种方法
- 基于为何我不喜欢用Path.Combine的详解
- JavaScript ES6中const、let与var的对比详解