在VB6中使.NET控件透明

3
所以,我有一个问题,在c# .NET中创建一个控件,并且在VB6中可以正常使用。但是,在vb6中无法在.NET容器中放置无边框控件,因此,我尝试制作一个特殊的.NET Label并将其公开给vb6。

我可以轻松地在我的表单上获取这个标签,但是我无法使其透明。

我尝试使用,但似乎总是表单的颜色,而不是实际父级的颜色(比如,一个框架)。当我使用然后是Parent's BackColor时也是一样的。即使那样工作了,它也不会很漂亮,如果背景是一张图片的话。

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

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

我没有选择,有人做过这个吗?怎么做?任何帮助都将不胜感激。


1
你真的在2013年创建一个用Visual Basic 6编写的应用程序吗?我从来没有听说过在VB6应用程序中放置C#控件。 - Security Hound
1
你为什么没有将VB6应用程序简单地移植到VB.NET?有什么非常好的理由吗? - Tony Hopkinson
3
@Ramhound,我在一家500强公司工作,在那些环境中运行大规模生产企业VB6应用程序并不罕见。实际上我们有一个为20K+用户提供服务,每天处理数百万交易的应用程序。然而,慢慢地你会开始整合更可持续的技术。 - Mike Perrenoud
1
企业级VB6?哦,天啊,我很高兴我不在那里工作。 - Tony Hopkinson
2
@everyoneelse 这是我在实习期间得到的任务,我不能轻易放弃。到目前为止我已经能够在VB6中完成很多工作,只是遇到了一个透明度问题。我们最终会转移到完全使用C#的应用程序,但竞争激烈且发展迅速,所以我们不能停止一切两年然后从头开始使用C#。 - Felix
显示剩余9条评论
1个回答

0

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

多年来,我一直以这种方式处理VB6用户控件中的透明度,似乎效果很好。

至于关于2013年企业应用程序中使用VB6的评论,那些人显然没有在软件行业工作过太长时间 :) VB6已经被实现在数百万仍在使用的企业应用程序中。我想问一下发表这些评论的用户一个问题,您如何在任何其他语言中提供VB6 ActiveX控件的功能?答案是-> 您无法。


我简直无法相信今天仍有数百万的企业应用程序在使用;可能每天有成千上万的用户使用这些企业应用程序。 - Pieter Geerkens
我不确定我理解你的意思... 在VB6中,我的.NET控件只有我在.NET代码中通过接口公开的属性。我可以轻松地在vb6中更改背景颜色,因为我公开了原始.net控件的背景颜色属性,但默认情况下没有“遮罩颜色”属性或“使此颜色透明”的属性。我应该添加什么到.NET接口/vb6代码? - Felix

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接