无法使具有颜色函数的vb6控件在vb.net中工作

无法使具有颜色函数的vb6控件在vb.net中工作,vb.net,colors,vb6,ocx,Vb.net,Colors,Vb6,Ocx,我有一个vb6 ocx控件,它有一个函数,该函数需要很长的时间来设置控件标签组件的颜色。在vb.net 64位环境中使用该控件之前,这一切都可以正常工作,在该环境中,long是int,color是另一种类型 我尝试将函数更改为对rgb使用3个整数,然后使用rgb函数获取要使用的颜色,但窗体将不会加载到vb.net环境中,控件位于其中 有人知道如何在vb6中更改控件的代码,以便在vb.net中使用吗?您可以使用内置方法获得应用程序中使用的等效颜色值: Dim myColor As Color =

我有一个vb6 ocx控件,它有一个函数,该函数需要很长的时间来设置控件标签组件的颜色。在vb.net 64位环境中使用该控件之前,这一切都可以正常工作,在该环境中,long是int,color是另一种类型

我尝试将函数更改为对rgb使用3个整数,然后使用rgb函数获取要使用的颜色,但窗体将不会加载到vb.net环境中,控件位于其中


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

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

Dim myColor As Color = Color.Red

' Translate myColor to an OLE color. 
Dim winColor As Integer = ColorTranslator.ToWin32(myColor)
结果是一个
Int32
,它在VB6中是一个
Long

所以

在VB6控件中,可以公开如下颜色属性:

Public Property Get ColorValue as Long
    ColorValue = lblColor.BackColor
End Property

Public Property Let ColorValue(value as Long)
    lblColor.BackColor = value
End Property
MyControl.ColorValue = ColorTranslator.ToWin32(Color.Red)
然后,在VB.NET应用程序中,可以如下设置:

Public Property Get ColorValue as Long
    ColorValue = lblColor.BackColor
End Property

Public Property Let ColorValue(value as Long)
    lblColor.BackColor = value
End Property
MyControl.ColorValue = ColorTranslator.ToWin32(Color.Red)

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

Dim myColor As Color = Color.Red

' Translate myColor to an OLE color. 
Dim winColor As Integer = ColorTranslator.ToWin32(myColor)
结果是一个
Int32
,它在VB6中是一个
Long

所以

在VB6控件中,可以公开如下颜色属性:

Public Property Get ColorValue as Long
    ColorValue = lblColor.BackColor
End Property

Public Property Let ColorValue(value as Long)
    lblColor.BackColor = value
End Property
MyControl.ColorValue = ColorTranslator.ToWin32(Color.Red)
然后,在VB.NET应用程序中,可以如下设置:

Public Property Get ColorValue as Long
    ColorValue = lblColor.BackColor
End Property

Public Property Let ColorValue(value as Long)
    lblColor.BackColor = value
End Property
MyControl.ColorValue = ColorTranslator.ToWin32(Color.Red)

如何在vb6控件中使用colortranslator类?那不是一个.net类吗?你的问题不太清楚,你是想用VB6还是VB.net编写代码,因为你在问题中标记了这两种语言?我很抱歉。我有一个vb6 ocx控件,我正试图在vb.NET中使用它,看起来它可能会工作。我已经通过在控件上粘贴一些不同颜色背景的不可见标签来解决了这个问题,并且能够通过传递一个字符串来设置颜色,说明要使用哪个标签,这样看起来很有希望。我现在暂时无法测试它。谢谢您提供的解决方案。如何在vb6控件中使用colortranslator类?那不是一个.net类吗?你的问题不太清楚,你是想用VB6还是VB.net编写代码,因为你在问题中标记了这两种语言?我很抱歉。我有一个vb6 ocx控件,我正试图在vb.NET中使用它,看起来它可能会工作。我已经通过在控件上粘贴一些不同颜色背景的不可见标签来解决了这个问题,并且能够通过传递一个字符串来设置颜色,说明要使用哪个标签,这样看起来很有希望。我现在暂时无法测试它。谢谢你的解决方案。