欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#实现窗体间传值实例分析

程序员文章站 2022-03-21 14:01:36
本文实例分析了c#实现窗体间传值的方法。分享给大家供大家参考,具体如下: 1、vs 2005的visual c# windows应用程序和visual c#智能设备poc...

本文实例分析了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#程序设计有所帮助。