C-sharp语言下父窗口中收集子窗口控件信息的方法技术领域
本发明涉及计算机工程领域,具体来讲是一种C-sharp语言下父
窗口中收集子窗口控件信息的方法。
背景技术
目前,C-sharp语言(C-sharplanguage,C#语言)作为一种公知
的.NET语言,经常需要利用多窗口场景来实现开发需求。
传统的子窗口控制信息收集方法,通过改写被传递值的窗口(即
父窗口)原来的构造函数来实现。在原来的构造函数码块中,定义子
窗口各目标控件对应的私有变量,以及定义私有变量的取值方式。在
子窗口控件的信息传出到父窗口的时候,子窗口判断开发人员是否点
击“确定关闭”的按钮,关闭子窗口后,利用构造函数将各目标控件
的信息传出到父窗口。由于利用了构造函数,因此操作过程比较复杂,
对开发人员的专业要求高,并且涉及多个控件时,处理更加复杂。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供C-sharp语
言下父窗口中收集子窗口控件信息的方法,操作过程简单,降低开发
人员的专业要求,提高子窗口下多控件的信息收集的简便性。
为达到以上目的,本发明采取的技术方案是:C-sharp语言下父
窗口中收集子窗口控件信息的方法,包括:S1.在父窗口中通过C-sharp
语言实例化多个目标子窗口;S2.打开每个目标子窗口,初始化每个
目标子窗口中所有控件的信息,定义一个带有公共属性的数组,作为
公共数组,将所有控件的信息保存到对应的公共数组中,关闭目标子
窗口;S3.在父窗口中,通过实例化的目标子窗口和公共数组两个特
征,对应获取到存储于公共数组中的目标子窗口各控件的信息。
在上述技术方案的基础上,所述S1中,目标子窗口是要实例化
的子窗口,目标子窗口的数目小于或等于父窗口中所有子窗口的数目。
在上述技术方案的基础上,所述S2中,通过模态对话框或非模
态窗口的方式,打开目标子窗口。
在上述技术方案的基础上,通过非模态窗口打开时,如果没有关
闭当前显示的页面,则无法关闭该页面后面的任一页面。
在上述技术方案的基础上,所述S2中,在目标子窗口的管理界
面中,初始化每个目标子窗口中所有控件的信息。
在上述技术方案的基础上,所述S2中,初始化每个目标子窗口
中所有控件的信息,包括定义带有公共属性的公共数组,作为父窗口
和子窗口之间信息传递的载体。
在上述技术方案的基础上,初始化每个目标子窗口中所有控件的
信息,还包括定义子窗口中各个控件的作用信息、各个控件自身的输
入/输出关系约束及防错,以及各控件之间的处理逻辑、过程显示及
存储。
在上述技术方案的基础上,所述S2中,每个目标子窗口下的所
有控件,通过逐个读写获取,或者通过关键字统一获取。
在上述技术方案的基础上,所述S3中,通过实例化的目标子窗
口,访问目标子窗口控件的信息,通过遍历目标子窗口对应的公共数
组,得到该目标子窗口中各个控件的信息。
本发明的有益效果在于:
1、定义一个带有公共属性的数组,作为公共数组,由于数组广
泛使用于多种语言中,有效降低开发人员的专业要求。可批量收集/
处理多个控件的信息,只需要将各控件的信息保存在公共数组中,无
需关注各个控件之间的差异,提高子窗口下多控件的信息收集的简便
性以及通用性。
2、公共数组作为父窗口和子窗口之间信息传递的载体,简化了
父窗口和子窗口间的信息传递过程,可以轻易的共享组窗口下各个控
件的信息。
3、子窗口的内部操作都保持独立,有助于代码结构清晰化,操
作过程简单,减轻后期的功能维护工作量。
附图说明
图1为本发明C-sharp语言下父窗口中收集子窗口控件信息的方
法流程图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
如图1所示,本发明C-sharp语言下父窗口中收集子窗口控件信
息的方法,包括如下步骤:
S1.在父窗口中通过C-sharp语言实例化多个目标子窗口。具体的,
目标子窗口是要实例化的子窗口,目标子窗口的数目小于或等于父窗
口中所有子窗口的数目。以实例化一个目标子窗口为例,按照如下格
式进行实例化:
目标子窗口实例化子窗口=new目标子窗口();
具体代码为:
SetTimerVar frm=new SetTimerVar();//实例化子窗口SetTimerVar
S2.打开每个目标子窗口,在目标子窗口的管理界面中,初始化
每个目标子窗口中所有控件的信息,定义一个带有公共属性的数组,
作为公共数组,将所有控件的信息保存到对应的公共数组中,关闭目
标子窗口。
具体的,通过模态对话框(modaldialog)或非模态窗口(modeless
dialog)的方式,打开目标子窗口。当通过非模态窗口打开目标子窗
口时,如果没有关闭当前显示的页面,则无法关闭该页面后面的任一
页面,它是当前唯一(路径打开)为true的。如下所示,通过模态对
话框打开/显示目标子窗口方法,
其代码为:
frm.show();//实例化子窗口.show()
通过非模态窗口打开/显示目标子窗口方法,其代码为:
frm.showDialog();//实例化子窗口.showDialog()
另外,初始化每个目标子窗口中所有控件的信息,包括定义带有
公共属性(public)的数组(即公共数组),公共数组作为父窗口和子
窗口之间信息传递的载体。初始化每个目标子窗口中所有控件的信息,
还包括定义子窗口中各个控件的作用信息、各个控件自身的输入/输
出关系约束及防错,以及各控件之间的处理逻辑、过程显示及存储。
在关闭子窗口前,遍历父窗口中需要的目标子窗口的控件,将控
件信息保存到对应的公共数组中,然后关闭目标子窗口,返回父窗口。
其中,依次遍历各个目标子窗口下的控件。每个目标子窗口下的
所有控件,可以通过Control关键字统一获取,或者通过逐个读写获
取。
例如,控件未放在某个容器(如groupbox)里使用,则代码如下
所示:
例如,通过逐个获取控件(即复选框)输入信息,将控件的信息
保存到公共数组cboAuto[]中,代码为:
S3.在父窗口中,通过实例化的目标子窗口和公共数组两个特征,
对应获取到存储于公共数组中的目标子窗口各控件的信息,可以达到
共享目标子窗口中控件信息的目的。具体的,通过实例化的目标子窗
口,访问目标子窗口控件的信息,通过遍历目标子窗口对应的公共数
组,得到该目标子窗口中各个控件的信息。
通过“实例化的目标子窗口.公共数组”方式访问目标子窗口控
件的信息,以访问公共数组中第8(从0开始)个元素为例,即访问
目标子窗口中第8个控件的信息,具体代码为:
frm.cboAuto[7];//访问公共数组中第8(从0开始)个元素
遍历公共数组,获取目标子窗口控件的信息,代码如下:
然后,可以重复以上步骤,完成目标子窗口其他控件的信息的获
取。
本发明以带有公共属性(public)的数组作为目标子窗口中控件
的信息收集载体,并将控件的信息传递给父窗口。构造公共数组储存
目标子窗口中所有控件的信息,实现目标子窗口下多控件信息的批量
管理,使子窗口控件的信息在父窗口中共享。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员
来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,
这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细
描述的内容属于本领域专业技术人员公知的现有技术。