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#程序设计有所帮助。

(0)

相关推荐

  • 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窗体程序开发的时候,会经常遇到窗体之间相互传值.假设有下面的一个场景:一个主窗体和一个子窗体,点击主窗体上面的按钮给子窗体传值,并在子窗体上面显示出来,一般会有如下几种方式实现. 二.公共属性 我们可以在子窗体里面定义一个公共的属性,然后在父窗体里面给公共属性赋值,这样可以实现窗体之间传值,子窗体代码如下

随机推荐