在.NET 1.0和1.1的版本中,我们要实现父窗口和子窗口之间的互操作,有两种简单的方法。
第一种,在主窗体类中定义一个静态成员,来保存当前主窗体对象,例如:

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  

虽然简单,不过略显得麻烦,在.NET 2.0版本中,也就是Visual C# 2005的版本中,我们可以直接使用Application.OpenForm["formname"].Controls("ControlName")来控制控件,可以说是非常的方便。

转载于:https://www.cnblogs.com/luyu/archive/2006/10/20/534281.html

Visual C#中父窗口和子窗口之间实现控件互操作相关推荐

  1. C#中父子窗口之间实现控件互操作

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

  2. Electron中打开和关闭子窗口以及子窗口向父窗口传值

    场景 用HTML和CSS和JS构建跨平台桌面应用程序的开源库Electron的介绍以及搭建HelloWorld: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/a ...

  3. mfc获取子窗口句柄_前端设计-JavaScript中父窗口与子窗口间的通信

    父窗体与子窗体之间的通信 在之前文章讲解windows程序设计过程中,我们曾描述了windows程序窗口之间通信与控制实现方法与过程,如窗体之间参数传递等.本文主要从Web程序开发前端JavaScri ...

  4. 父窗口与子窗口的数据传递问题

    曾经有那么一道题目是关于父窗口与子窗口的数据传递问题.我当时只知道父窗口向子窗口传递数据.不知道子窗口怎么向父窗口传递数据.今天终于把这个问题解决了,呵呵,记录一下: 我权且把原始窗口叫父窗口,把从该 ...

  5. iframe 父窗口和子窗口相互的调用方法集锦

    一.父窗口调用iframe子窗口方法 1.HTML语法:<iframe name="myFrame" src="child.html"></i ...

  6. 总结JavaScript(Iframe、window.open、window.showModalDialog)父窗口与子窗口之间的操作

    前些日子,一直奔波于这三种操作,想想以后会常用,干脆整理下来,供自己以后查看.也给大家分享一下! 以下面写出自己认为有用的操作和代码. 第一次在园里面写,肯定有很多不足够之处,希望大家多多指点. 一. ...

  7. 父窗口、子窗口和Silverlight之间的相互调用

    啊哈~ 爷爷,爸爸,儿子~ 三代同堂~ 前两天做 silverlight 的东西,主页面打开一个子页面,然后子页面中包含一个 silverlight 应用程序 那难免会涉及到他们三者相互调用的问题 其 ...

  8. 安卓使用intent切换到同级窗口和子窗口,并从子窗口中获取返回数据

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓使用intent切换窗口,并从子窗口中获取返回数据 切换到应用内部同级窗口,同时传递数据 窗口 Intent_Activity 切换到应用内同级窗 ...

  9. windows窗口分析,父窗口,子窗口,所有者窗口

    (本文尝试通过一些简单的实验,来分析Windows的窗口机制,并对微软的设计理由进行一定的猜测,需要读者具备C++.Windows编程及MFC经验,还得有一定动手能力.文中可能出现一些术语不统一的现象 ...

最新文章

  1. 我们为什么要探索人脑的奥秘?
  2. Hawk原理:通过IEnumerable实现通用的ETL管道
  3. python opencv 透视变换
  4. jsp 页面显示格式化的日期
  5. composer 设置版本号_composer 安装及使用
  6. 信息学奥赛C++语言:输出亲朋字符串
  7. phpcmsV9 QQ接入 - 线下phpsso应用管理 - 踩坑篇
  8. 打破南北网络障碍 打造财务安全“双保险”——烟台万华借沟通CTBS实现财务大集中...
  9. php学习笔记0001 变量作用域
  10. 九、装配bean--通过properties文件注入值
  11. 董明珠上榜中国杰出商界女性100
  12. 30秒明白tcp的3次握手
  13. 【转载】分层开发思想与小笼包
  14. Web页面自动化执行,Java+Selenium3.0-Mac OS环境搭建
  15. THINK PHP 学习笔记20171115
  16. iframe高度自适应 1
  17. SSRF libcurl protocol wrappers利用分析
  18. Unity 接入科大讯飞语音sdk
  19. 字典写入excel_Excel中“先出式”出货的问题,以后出库太方便了
  20. 深度学习在视频动作识别应用

热门文章

  1. 小学生计算机按键分布图,人教版(新版)小学信息三下第2课《常用按键掌握牢》课件.ppt...
  2. php 内链接实现三表,Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
  3. JAVA高性能内存队列-disruptor
  4. Apollo添加部门
  5. RabbitMQ发布/订阅模式(Publish/Subscribe)
  6. linux下源码安装log4cxx
  7. java数组循环扩容_Java中实现数组动态扩容的两种方法
  8. Python---面向对象(一)
  9. Windows Server 2012配置开机启动项
  10. 《计算机系统:系统架构与操作系统的高度集成》——3.2 处理器实现涉及什么...