主窗体和子窗体之间如何相互操作对方的控件

转载 2006年06月07日 17:06:00
 主窗体和子窗体之间如何相互操作对方的控件

很多人都苦恼于如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗体上的控件。相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。

 

下面重点介绍前一种,目前常见的有两种方法,基本上大同小异:

第一种,在主窗体类中定义一个静态成员,来保存当前主窗体对象,例如:

        public static yourMainWindow pCurrentWin = null;

 

       然后在主窗体构造函数中,给静态成员初始化,如下:

            pCurrentWin = this;

 

       那么在子窗体中调用父窗体,可以通过“主窗体类名. pCurrentWin”来操作当前的主窗体。

 

       第二种,是在子窗体中定义一个私有成员,来保存当前主窗体对象,例如:

        private yourMainWindow pParentWin = null;

      

       然后在子窗体构造函数中,加一参数,如下:

        public yourChildWindow( yourMainWindow WinMain )

        {

            pParentWin = WinMain;

            //Other code

}

      

       在主窗体创建子窗体的时候,要把this作为参数来构造子窗体,这样在子窗体中调用父窗体,可以直接用“this.pParentWin”就可以了

 

       不过以上所作的,只是让你能够访问当前主窗体对象,那么如何操作控件,很多人直接修改控件的成员访问符,即把“private”改为“public”,我觉得这样破坏了本身类的封装,所以我比较喜欢的做法是增加公有属性或方法来供调用,例如:

        public string ButtonText

        {

            get{ return btn.Text;}

            set{ btn.Text = value;}

        }

 

        public void Button_Click()

        {

            this.btnDConvert.PerformClick();//Execute button click

        }

      

      

C#主窗体和子窗体之间如何相互操作对方的控件

原文地址:http://blog.csdn.net/knight94/archive/2006/03/18/628285.aspx很多人都苦恼于如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗...
  • ltolll
  • ltolll
  • 2006年09月04日 15:44
  • 2349

C#子窗体调用主窗体中事件

很多人都苦恼于如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗体上的控件。相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。 下面重点介绍前一种,目...
  • ycs34082419900527
  • ycs34082419900527
  • 2015年07月16日 22:33
  • 1146

窗体Form1和Form2 传值

背景:窗体Form1和Form2 Form2由Form1打开(1、模式窗体 2、非模式) 要求:Form2的TextBox值传回Form1的TextBox中 方法: 情况一:(模式窗体)For...
  • xiaoxiang_feizi
  • xiaoxiang_feizi
  • 2010年12月08日 11:05
  • 3224

vs2005 C# 主窗体和子窗体之间控件相互调用

  vs2005 C# 主窗体和子窗体之间控件相互调用最近工作用到了C#开发Form应用程序,其中用到了主窗体和子窗体之间控件的相互调用。查了一些资料,现在根据自己写的一个小示例总结如下。1.主窗体中...
  • zhangyuanlovelife
  • zhangyuanlovelife
  • 2007年11月09日 23:19
  • 5021

Access子窗体引用父窗体的控件

private sub 子窗体函数()      me.子窗体控件1=Forms!F_主窗体.[主窗体控件1]End sub ...
  • zhoushengchao
  • zhoushengchao
  • 2008年03月11日 19:15
  • 5158

主窗体和子窗体之间如何相互操作对方的控件

 很多人都苦恼于如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗体上的控件。相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。 下面重点介绍前一种,目前常...
  • yumanqing
  • yumanqing
  • 2006年10月23日 10:41
  • 2804

Qt中子窗体控件向父窗体控件传值

今天学习Qt中控件相互传值的方法。其中参考了一些网上的意见。今天学习了两种方法。其中一种是利用全局变量;另一种是利用了Qt中的信号和槽机制。当学习signals和slot机制的时候,有一些疑问,在介绍...
  • bullzerone
  • bullzerone
  • 2015年07月09日 22:49
  • 1372

C# 子窗体向父窗体控件传值

在写程序的时候用到了由子窗体确定参数后返回给父窗体。这就涉及到窗体间传值的问题。C#是不提供窗体间变量和控件的直接相互调用(就是说即使Form1的变量和控件属性都设为Public或者Internal,...
  • liuzhuoran1110
  • liuzhuoran1110
  • 2012年11月25日 22:50
  • 1359

主窗体和子窗体之间如何相互操作对方的控件

很多人都苦恼于如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗体上的控件。相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可。 下面重点介绍前一种,目前常见...
  • trumf
  • trumf
  • 2006年03月29日 14:15
  • 624

[愚翁专栏]主窗体和子窗体之间如何相互操作对方的控件

主窗体和子窗体之间如何相互操作对方的控件 document.title="主窗体和子窗体之间如何相互操作对方的控件 - "+document.title很多人都苦恼于如何在子窗体中操作主窗体上的控件,...
  • MaybeHelios
  • MaybeHelios
  • 2006年05月18日 23:10
  • 903
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: 主窗体和子窗体之间如何相互操作对方的控件
举报原因:
原因补充:

(最多只允许输入30个字)