如何将无窗口控件放在窗口控件的顶部



说,我有一个图像控件(似乎是一个无窗口控件),我想确保它位于文本框的顶部。 无论我做什么,图像控件都不会出现在文本框的顶部。

有办法吗?

附言 我知道我可以使用 PictureBox,但它不支持透明度,因此我必须具有 Image 控件。

无法将

图像控件放置在普通文本框上,因为它们被绘制到窗体本身上,因此将始终位于任何其他窗口组件的下方。

如果您有 VB6 安装介质,则有绘制(无窗口)版本的控件,包括您可以使用的文本框,该文本框(可能)可以执行您想要的操作; http://support.microsoft.com/kb/184687

某种自定义用户控件,如果可能更好..您要覆盖文本框的确切含义是什么?

图像控件被视为图形控件,就像形状一样,因此它始终不如文本控件。如果你真的想要一个透明的图像,你可以使用Microsoft 2.0表单代替(只有当你有它)。那里的图像可以位于文本框的顶部,您可以通过将"背景样式"设置为"透明 (0)"来使其透明。

与我的另一个答案完全不同的方法(因此单独的答案),但您可以将窗体上的 AutRedraw 和 ClipControls 设置为 false,它将允许 Image 控件呈现在与窗口控件相同的图层上。 在某些情况下,您可以获得一些片状重绘,但对于快速解决方案,您可以尝试一下。

http://msdn.microsoft.com/en-US/library/aa733621(v=vs.60)

我创建了一个跨父级覆盖控件,用于在 VB6 应用程序顶部添加一种注释层。 我将尝试从内存中描述它,如果这不能提供足够的信息,那么您可以回发,我将尝试挖掘代码。

首先,向应用程序添加新的 USerControl。 给它起个名字,比如ImageEx、PictureEx或TransparntImage。 您需要使用多个属性。 确保控件处于窗口化状态,以便它可以位于其他窗口控件之上。 找到"蒙版颜色"属性并将其设置为"青色"(或选择用于指示父级区域的任何颜色)。 可能有一个附加属性启用屏蔽行为,只需浏览属性即可。 将控件背景颜色设置为蒙版颜色的颜色。 此时,您有一个不可见的控制。 在我的控制中,我在表面上绘制以进行注释,但您可以 PaintPicture 甚至为非常简单的方法设置图像属性。

当然,要使其成为可重用的控件,您需要在自己的属性中编写代码,以允许设置 MaskColor 和图像等,以便您可以将其中一个放在您想要的任何窗体上。


一些链接:

遮罩颜色属性

麦克图片属性

1)删除所有文本框,标签和...(但在表格中记住他们的名字和位置)

2)转到(项目>组件)并标记(Microsoft Forms 2.0对象库),然后单击确定

3)现在您可以在工具箱的默认控件下看到新控件...

4) 使用其文本框和标签控件而不是默认控件

5)右键单击您的图像控件,然后单击(置于顶层)

最新更新