【问题标题】:cannot get a vb6 control with a color function to work in vb.net无法使具有颜色功能的 vb6 控件在 vb.net 中工作
【发布时间】:2013-08-14 04:01:04
【问题描述】:

我有一个 vb6 ocx 控件,它具有一个功能,除其他外,它需要很长时间来设置控件标签组件的颜色。这一切都可以正常工作,直到您在 vb.net 64 位环境中使用该控件,其中 long 是整数并且颜色是不同的类型。

我尝试将函数更改为 rgb 取 3 个整数,然后使用 rgb 函数获取要使用的颜色,但表单无法在带有控件的 vb.net 环境中加载。

有谁知道如何在 vb6 中更改控件的代码,以便在 vb.net 中使用?

【问题讨论】:

    标签: vb.net colors vb6 ocx


    【解决方案1】:

    您可以使用内置方法来获取在您的应用程序中使用的等效颜色值:

    Dim myColor As Color = Color.Red
    
    ' Translate myColor to an OLE color. 
    Dim winColor As Integer = ColorTranslator.ToWin32(myColor)
    

    结果是 Int32,在 VB6 中是 Long

    所以...

    在您的 VB6 控件中,您可以像这样公开 Color 属性:

    Public Property Get ColorValue as Long
        ColorValue = lblColor.BackColor
    End Property
    
    Public Property Let ColorValue(value as Long)
        lblColor.BackColor = value
    End Property
    

    然后在你的 VB.NET 应用程序中你可以这样设置它:

    MyControl.ColorValue = ColorTranslator.ToWin32(Color.Red)
    

    【讨论】:

    • 如何在 vb6 控件中使用颜色转换器类?那不是 .net 类吗?
    • 您的问题不是很清楚,您是否尝试在 VB6 或 VB.NET 中编写代码,因为您已在问题中标记了两者
    • 我很抱歉。我有一个尝试在 vb.net 中使用的 vb6 ocx 控件
    • 这似乎可行。我通过在具有不同颜色背景的控件上粘贴一些不可见的标签来制作一个 cludge 解决方案,并且能够通过传递一个说明使用哪个标签的字符串来设置颜色,所以这看起来很有希望。我现在暂时无法测试它。感谢您的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-09
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多