如何改变控件(包括自定义控件)在FORM上的叠放次序? 如何改变控件(包括自定义控件)在FORM上的叠放次序?假如两个控件有重叠,一个控件挡住了另外一个控件。想把上面的控件放到下面,从而让下面的控件显示出来,请问有什么办法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 controlname.zorder -1 *****************************************************************************欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码) http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html 看到一段资料,好像用zorder每办法实现了,各位大虾有没有其他折衷办法?急设计阶段选取快显功能表中的「移至顶层」或「移至底层」功能表指令,可以设定物件的 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 如何设定, 在上面一层的物件永远会在中间一层的物件的上方! 在中间一层的物件永远会在最下一层的物件的上方! 首先我们来明确一个问题,针对你说的:“ 原因是对单一 Form 或 单一 Container 而言,在垂直的 Z 座标轴上又分成三个层次: 最下一层:显示图形方法结果的绘图空间。 中间一层:用来显示图形物件(例如 Image) 和 Label 控制项。 上面一层:显示所有非图形控制项,例如 CommandButton、CheckBox 或 ListBox。”你试一下将窗体上放置一些控件,将窗体的ClipControls设置为False,然后写入下面的代码:Private Sub Command1_Click() Me.Line (0, 0)-(Me.ScaleWidth / 2, Me.ScaleHeight / 2), , BFEnd Sub你会看到,绘制的矩形遮挡了控件,所以这种次序是可以改变的。另外,象Label、Image这样的控件没有hwnd,是一种轻量控件,严格的讲它不属于Windows窗口的范围,因此它没有Hwnd,这种控件是永远不可能显示在有hwnd属性的控件之上的。yangao说的方法我想他是说你把这些Label这类控件放在Frame或PictureBox中,然后利用这些容器来达到实现Z顺序的目的吧。 VB的怎么来学习是比较好的 adodb 与 adodc的区别 如何找出那些汉字是多音字?那些是单音字? 请教GetPrivateProfileStringW的使用方法 id字段的客户端数据输入问题。 msHflexgrid的问题,高手帮忙 有关image的问题 导致ado.recordcount=-1的原因哪些? 在VB中用什么转义字符表示双引号啊? C#专家小组成立 VB打包的问题 有人会使用VB操作IIS吗?
*****************************************************************************
欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码)
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
设计阶段选取快显功能表中的「移至顶层」或「移至底层」功能表指令,可以设定物件的 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 如何设定,
在上面一层的物件永远会在中间一层的物件的上方!
在中间一层的物件永远会在最下一层的物件的上方!
原因是对单一 Form 或 单一 Container 而言,在垂直的 Z 座标轴上又分成三个层次:
最下一层:显示图形方法结果的绘图空间。
中间一层:用来显示图形物件(例如 Image) 和 Label 控制项。
上面一层:显示所有非图形控制项,例如 CommandButton、CheckBox 或 ListBox。”
你试一下将窗体上放置一些控件,将窗体的ClipControls设置为False,然后写入下面的代码:
Private Sub Command1_Click()
Me.Line (0, 0)-(Me.ScaleWidth / 2, Me.ScaleHeight / 2), , BF
End Sub
你会看到,绘制的矩形遮挡了控件,所以这种次序是可以改变的。
另外,象Label、Image这样的控件没有hwnd,是一种轻量控件,严格的讲它不属于Windows窗口的范围,因此它没有Hwnd,这种控件是永远不可能显示在有hwnd属性的控件之上的。
yangao说的方法我想他是说你把这些Label这类控件放在Frame或PictureBox中,然后利用这些容器来达到实现Z顺序的目的吧。