3

所以我遇到了这个问题,我在 c# .NET 中创建了一个控件,我可以在 VB6 中很好地使用它。但是,由于您无法在 vb6 中的 .net 容器中放置无边界控件,因此我尝试制作一个特殊的 .NET 标签并将其公开给 vb6。

我可以在我的表单上得到这个标签,但我不能让它透明。

我尝试过使用UserControl_AmbientChanged,但Ambient.BackColor似乎总是表单的颜色,而不是实际父级的颜色(比如框架)。当我使用UserControl.Parent然后是父母的背景颜色时也是如此。与 相同Extender.Parent。即使这样可行,在背景是图像的情况下也不会很漂亮。

我试过使用SetWindowLong,但这只会使整个标签不可见/透明,而不考虑标题。

我尝试使用此处找到的 bliting 技术:http ://www.vbforums.com/showthread.php?438895-transparent-text-box-or-label-with-scrollbars&highlight=transparent%20TextBox但这不起作用我的控件不是图片框。

我没办法了,以前有人做过吗?如何?任何帮助都将不胜感激。

4

1 回答 1

0

如果我正确理解您的情况,您将希望将 .NET 用户控件背景颜色设置为不同的颜色(例如带有特定 HEX 颜色代码的粉红色)。然后在您的 VB6 应用程序中,您将这个相同的颜色代码(粉红色)设置为属性表中的透明颜色。

多年来,我一直以这种方式处理 VB6 用户控件的透明度,而且它似乎工作正常。

至于 2013 年关于企业应用程序的 VB6 的评论,这些人显然在软件行业工作的时间不长 :) VB6 已在数以百万计的企业应用程序中实现,这些应用程序至今仍在使用。我想问发布此类评论的用户一个问题,您如何以任何其他语言提供 VB6 ActiveX 控件的功能?答案-> 你不能。

于 2013-05-03T04:50:22.720 回答