在VB6中使.NET Control透明化

时间:2013-05-01 15:36:05

标签: c# .net vb6

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

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

我尝试使用UserControl_AmbientChanged,但Ambient.BackColor似乎总是表单的颜色,而不是实际的父颜色(例如,框架)。当我使用UserControl.Parent然后使用Parent的BackColor时也一样。与Extender.Parent相同。即使这样有效,在背景是图像的情况下也不会很好。

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

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

我不能选择,之前有人这么做过吗?怎么样?任何帮助都将非常感激。

1 个答案:

答案 0 :(得分:0)

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

我已经用这种方式处理了VB6用户控件的透明度多年,似乎工作正常。

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