VB中如何设置组件置于顶层

  • 内容
  • 评论
  • 相关

首先声明的是,本次所说的是组件在软件中的置顶,即在编辑界面时右键组件选择的“移至顶层”,而不是所在的软件在整个windows里面的置顶。

可能,这个只是很简单的应用,任何一本介绍VB开发的入门书都会提到,但是像我这种半路出家的,需要用到什么才查什么的人,的确是不会的。

本次是因为编程中应用到1个frame组,同时放于软件的同一位置,设计利用1个options组的选择进行切换,实现一个简单的类似于标签页的效果。所以就需要利用点击options时候来控制,把需要显示的frame置于软件顶层。因为不会,就google,可惜开始关键字不对,查“VB 置于顶层”,结果查到的结果基本是把整个软件置顶的方法,这个以前也学过了,一般是利用API来实现的,下次再复习一下吧。
考虑了一下,重新更改关键字为“VB 移至顶层”,很快就找到了,实现起来真的很简单。如我要把frame1移至顶层,把它的zorder置为0,或者省略即可。代码如下:

Frame1.ZOrder'把Frame1至于顶层

然后在网上再搜索了一下VB的zorder用法,放在后面作为参考吧:

ZOrder的使用
作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

ZOrder的使用

ZOrder 拆开以后就是 Z 及 Order,其意义说明如下:
Z:这里是指三度空间中的 Z 座标轴 (注一),而不是指英文字母的第 26 个字母。
Order:排列顺序。
所以 ZOrder 就是指在 Z 座标轴上的排列顺序!

ZOrder 语法如下:

object.ZOrder position

---------------------------------------------------------------------------

object 选择性引数。物件运算式,用来指定「适用于」清单中的物件。
如果省略 object,则假设具有驻点的 Form 物件为 object。
Position 选择性引数。整数,用以指示 object 相对于同一 object 其它执行个体的位置。
如果 position 为 0 或省略,则 object 放置在 z- 顺序前面 (上方)。
如果 position 为 1,则 object 放置在 z- 顺序后面 (下方)。

---------------------------------------------------------------------------

在设计阶段选取快显功能表中的「移至顶层」或「移至底层」功能表指令,可以设定物件的 z- 顺序。

ZOrder 用在不同的地方,有二种不同的意义:
1、用于 MDIForm 中的 Child Form 时,指的是每一个 Child Form 的上下位置关系。
2、用于每一个 Form 中的所有控制项时,指的是每一个控制项间的上下位置关系。 (注二)

注一:一般我们的二度平面座标轴是指 X 座标轴 (东西向)及 Y 座标轴 (南北向),
二个轴构成一个平面,再加上垂直的 Z 座标轴,就构成了三度立体空间了!
所以 ZOrder 指的就是物件在垂直的 Z 座标轴上的上下位置关系。

注二:虽然 ZOrder 指的是物件在垂直的 Z 座标轴上的上下位置关系。
但是很多人搞不清楚,为什么他已经设定了 ZOrder 了,为什么在某些控制项中是无效的?

原因是对单一 Form 或 单一 Container 而言,在垂直的 Z 座标轴上又分成三个层次:
最下一层:显示图形方法结果的绘图空间。
中间一层:用来显示图形物件(例如 Image) 和 Label 控制项。
上面一层:显示所有非图形控制项,例如 CommandButton、CheckBox 或 ListBox。
而 ZOrder 只对单一层次内的控制项有效而已!

例如:您如果设定 Label 及 Image 的 ZOrder 是有效的,因为它们都在中间一层!
您如果设定 Label 及 CommandButton 的 ZOrder 是无效的,因为它们在不同层!

最重要的是:不管 ZOrder 如何设定,
在上面一层的物件永远会在中间一层的物件的上方!
在中间一层的物件永远会在最下一层的物件的上方!
以上代码来自: 源代码数据库(SourceDataBase)
当前版本: 1.0.423
作者: Shawls
个人主页: Http://Shawls.Yeah.Net
E-Mail: [email protected]
QQ: 9181729

-----------------------------------------------
文章好老哦,不过还是有用的,希望能跟大家一起分享一下。

评论

0条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据