admin 管理员组

文章数量: 1086019


2024年3月27日发(作者:toolstripprogressbar)

VB窗体对控件、对象的限量问题与对策

陈文平;高玲

【摘 要】利用VB进行程序设计时,离不开向窗体中添加必要的对象、控件或部件

等.然而,一个VB窗体单元能容纳多少个控件,作为容器的窗体单元其容量是有限制

的.就开发VB程序过程中向窗体加入控件时所遇到的数量限制的问题进行探讨,得

出结论:一个窗体单元能容纳独立的控件的数量最多为254个.并对设计中遇到的控

件数爱限的情况,采用较为普通的、常用的技术和方法进行处理,提出了几项措施来

解决添加控件受到数量限制的问题.%When programming using VB,it is

inevitable to add necessary objects,controls and components to a form.

However,how many controls a VB form unit can accommodate, the

formunit,as a container,has limitation in its capacity. In this article the

problem of number limitation in controls added to the form during the

process of VB program development is discussed,and the conclusion is

obtained; I. E. The largest capacity of independent controls a form unit can

accommodate is 254. For the problem of number limitation of the controls

encountered in designing,usual and commonly used techniques and

means are adopted to deal with. Moreover,a couple of measurements are

proposed to resolve the problem of number constraints in adding the

controls.

【期刊名称】《计算机应用与软件》

【年(卷),期】2011(028)012

【总页数】3页(P295-297)

【关键词】控件限量;对策;复用技术;组件技术

【作 者】陈文平;高玲

【作者单位】蚌埠学院机械电子工程系 安徽蚌埠233030;安徽财经大学信息工程

学院 安徽蚌埠233030

【正文语种】中 文

【中图分类】TP311.52

0 引言

VB是一种面向对象的程序设计语言及可视化应用程序开发工具。它简单易学、易

掌握,功能强大,具有应用灵活、可视性好等特点,作为一种比较流行的程序设计

语言之一而被不少工程设计人员、软件开发人员所青睐。

利用VB语言开发程序的步骤比较其它的语言设计程序相对较为简单,即,建立工

程、窗体,根据程序的需要添加和组织必要的对象、控件和组件,再编写相应的过

程代码。这些问题许多书籍都有介绍,在此不再赘述。

利用VB程序设计的过程中,在建立了窗体(Form)后向其上面添加必要的来实现封

装和继承功能。笔者在编写某机械设计的程序时,因涉及到的内容、对象比较多而

不得已使用了较多数量的控件。设计中遇到这样的问题:当对建立的一个窗体添加

到一定数量的对象控件后,再要增加这些对象时系统给出了“达到极限:该窗体不

能再创建更多的控件”的提示,如图1所示。

图1 添加控件提示

这个提示告诉我们在VB程序设计的系统中使用控件的数量是有限制的。

1 问题所在

经过探究发现,作为以单个对象的方式向VB的窗体中加添控件,亦即不是把控件

作为“组件”方式添加,最多只能容纳254个控件;如果加上窗体Form控件本身,

只能有255个。如果再继续增加控件超过这个数量,系统将拒绝执行添加操作。

这表明,一个窗体单元的容量是有限制的。即:一个Form单元对象只给它的内部

封装对象配置了28-1个栈空间,超过了这个栈数目,系统将拒绝接收。

窗体是设计人员进行用户界面设计和操作的主要舞台,在可视化应用程序设计中窗

体相当一个放置其它对象的容器。

对于一个较大型的、设计对象内容较多的程序编写,在VB环境下设计,需要的控

件数量相应也较多,否则将影响到目标产品的品质和用户的要求。但是较多地使用

控件,会出现如笔者所遇到的问题。

作为容器的窗体,由于VB本身系统的原因,这个容器应该是有限量的。“254”

这个值就是它的容量,它只能容纳254个控件。

如何解决问题,除优化设计对象的结构、流程以及采用多窗体设计外,在充分利用

VB的环境中可以采取一些措施来回避上述问题。经过探索,可以采用以下一些措

施来处理和解决问题。

2 控件的复用技术

控件复用技术是指同一个控件在不同的程序执行阶段,发挥不同的功能作用而重复

使用之。

2.1 标签Label控件

用来当作如操作步骤和方法提示等的标签,可以集中在同一个标签中显示不同的文

本内容达到目的。

例如,需要用户对各按钮根据程序所指示的某种顺序来进行操作或选择,不同的按

钮需要提示给用户不同的操作信息或方法。那么,可以对相应的按钮建立

“MouseMove”(鼠标移动)过程。当鼠标移动到不同的按钮上面时激发该过程,

并在同一个标签上提示出相应的信息。这样,在同一个窗体中只要用一个标签就可

以满足。那么,我们可以在窗体的运行界面上集中划定一个提示信息区,用一个或

少量的标签来完成该功能。

还可以利用标签控件实现某些结果的输出,从而取代用文本框输出值。如在设计阶

段定义的标签Label1的Capion属性为:“高速级齿轮齿数为:”,使用下列语句:

n= &“Z1=”& str(z1)& “;Z2=”&str(z2)

其中:“Z1”和“Z2”分别为两个啮合齿轮的齿数变量。如果计算的齿数分别

为:19和43,运行后的结果输出为:

“高速级齿轮齿数为:Z1=19;Z2=43”。这样可以节约3到4个控件数。

2.2 按钮Button控件

利用按钮的“Caption”属性可以在程序中做某些顺序执行的操作。如:将按钮的

“Caption”分别设置为“计算”和“确定”,就可以利用同一个按钮实现对计算

值的计算和最终的确定等。

图2 按钮控制标签位置的实例

图2为用该属性实现按钮控制驱动标签位置和内容变化的操作。意在说明实现按

钮和标签的复用之例。

该过程的代码如下:

2.3 文本Text控件

文本控件在程序中主要用来表示接收用户的输入值或显示输出文本结果。在程序的

运行中文本控件的执行通常是由包含在其它控件的驱动过程中激发的。因而,对于

一些在程序运行过程中需要输出诸如中间量或参照值的结果,这些文本框可以充分

地重复使用。

例如,我们利用两个按钮和一个文本框。一个按钮实现数据的数据输入,另一个按

钮实现结果的输出;输入与输出结果都在同一个文本框中显示。其过程代码如下:

执行效果如图3所示。

图3 同一文本框实现输入输出

上述所列仅是在程序设计中使用最多、最频繁的三个标准控件之例。限于篇幅,还

有一些控件都能够进行复用,如图片PicturBox、图像Image控件等等。利用复

用技术是解决控件限量的方法之一。只要适当地规划程序运行结构、时段、过程等,

妥当地安排它们的位置、功能和作用就可以达到目的。

3 组件技术

所谓“组件技术”,笔者在此意指在一个框架Frame内利用已经建立的控件创建

控件数组。控件数组一般在如单选按钮、复选按钮中使用较多,其它控件也可以利

用“复制-粘贴”的操作创建控件数组。当创建时系统作如图4的提示,回应时

应选择“是”。注意不能在提示框中选择“否”,否则创建的不是控件组,而是独

立的控件,这种情况将不会有效果。创建的控件组名将以一个索引序列排列,设计

时对应编写相应过程就能够达到与独立控件功能相同。

图4 创建控件组提示

为了便于控件组的管理、使用,可以将部分功能相近的控件组创建在一个框架

Frame控件内。目的有两个:一是使用、管理方便。在程序编写中需要经常调试某

个过程,通过框架的使用便于大程序的定位;二是能够大量重复使用该性质的控件

而不占用资源,达到节省控件、总量受限的目的。

需要说明,虽然尚不清楚原由,可以清楚的是通过在框架内建立的控件组比直接在

窗体上用相同方法创建的控件组的量要多,且不受框架外控件总量的限制。具体数

量尚待进一步研究。还要另外指出,如命令按钮等一些控件在形成组件后它们的驱

动功能将有所改变,失去一些它们在单独使用中的一些功能。就命令按钮

(“Command”控件)而言,如果复制成组后所给予它的驱动过程作用都是相同的。

即不论激发该组中的哪个按钮,它的执行是同一个过程。这是因为在一组

Command控件中,除了名称“Caption”属性不同外其它大多数属性都相同。这

些控件使用成组时需要额外考虑它们的配置。

因此,在同一框架内创建控件数组的方法,是解决VB中控件数量限制的最有效办

法之一。因为在同一个框架内,不论控件组中含有多少个控件(当然也不能突破

254),在窗体Form中都将它们视作一个控件。

4 使用内部函数进行输入输出

VB中有两个内部函数,即:InputBox()函数和MsgBox()函数。这两个函数类似于

可视化控件在程序运行中实现数据的输入和输出,它们既具有控件的相似功能作用,

而又不会占用控件数量资源。

4.1 InputBox()函数

InputBox()函数的功能是在程序运行中根据需要接收键盘的数据输入。用该函数替

代由文本框来输入数据。

4.2 MsgBox()函数和 MsgBox语句

MsgBox()函数和MsgBox语句是消息框,用于显示信息。MsgBox()函数和

MsgBox语句使用时功能基本相同,但略有区别。利用它们可以在程序中用来取

代其他控件显示某些计算数据的结果。特别是程序运行中的中间结果。

如果需要把输出数据确定或保存下来,我们使用MsgBox()函数;如果仅需某阶段

性的数据提示,使用MsgBox语句即可。

5 动态创建和删除控件方法

VB中利用它的类继承也可以在程序的运行中创建控件,同时在运行中删除控件。

那么,利用这种方法同样可以达到当控件不足或受限时删除某些已经存在的控件,

并与此同时建立新的需要的控件。这方面一些资料中有介绍。

不过,这种方法在一般设计中操作起来显得繁琐,需要大量编写语句来实现,但仅

限于建立组件等。再一是对于目标比较明确的设计,所要创建的控件的某些属性设

置在设计阶段比较容易确定,而运行中它们是隐含的不易确定。因此,用动态创建

和删除的方法来克服控件数量限制对本文提到的问题不可取。

6 结语

对于一些特定的设计对象,如笔者所设计的程序。既要操作方便、过程不间断,又

要保持系统整体性、同一个界面能够统览全过程,势必会遇到需要使用过多的控件

对象来满足设计的需求。

设计过程中向VB窗体添加控件总量受到限制,是一个不可忽视的问题。它确定存

在,如果处理不妥将会给设计人员在设计中带来不必要的麻烦,可能会对设计导致

前功尽弃的后果。特别是对初学者尤其要引起重视。

解决的方法也不只是文中提到的几种,还有许多其他的方法解决。如,在程序前期

合理规划、构建设计流程;采用多窗体设计等等。

因此解决好此类问题,需要我们对VB这种设计语言以及可能遇到的问题作进一步

深入地思考和探索。

参考文献

[1]龚沛曾,陆慰民,杨志强.Visual Basic程序设计简明教程[M].2版.北京:

高等教育出版社,2002.

[2]吴企渊,梁燕.计算机操作系统[M].2版.北京:清华大学出版社,2003.

[3]同志工作室.Visual Basic 6.0开发技巧与实例教程[M].北京:人民邮电出版

社,2005.

[4]陈文平.弯曲内力图计算模型及程序的实现[J].科技创新导报,2007,

33:39 -40.

[5]东南大学机械学学科组,郑文纬,吴克坚.机械原理[M].7版.北京:高等教

育出版社,2004.


本文标签: 控件 设计 窗体 程序 需要