C#中实现窗体间传值

来源:qqread 作者:佚名 2007-12-19 出处:pcdog.com

  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()没有重载。



上一篇:怎样通过Visual C#.net创建一个DTS任务
下一篇:C#实现窗口最小化到系统托盘