首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ColorConstants in VB6 to VB.net

ColorConstants in VB6 to VB.net
EN

Stack Overflow用户
提问于 2014-07-18 16:07:17
回答 1查看 1.6K关注 0票数 3

我正在将VB6 ActiveX Dll转换为VB.net。为了支持遗留系统,我需要COM接口以与更新前相同的方式工作。

我有两个实例,其中一个VB6 ColorConstant作为VB6中的一个属性来回传递。

VB6

代码语言:javascript
复制
Public Property Let ProgressBarColor(color As ColorConstants)
  userform.ProgressBarColor = color
End Property

Public Property Get ProgressBarColor() As ColorConstants
  ProgressBarColor = userform.ProgressBarColor
End Property

以下是我在.Net中的内容

VB.NET

代码语言:javascript
复制
Public Property ProgressBarColor() As Long
  Get
    userform.ProgressBarColor
  End Get
  Set(ByVal Value As Long)
     ProgressBarColor = System.Drawing.ColorTranslator.FromOle(Value)
  End Set
End Property

有没有一种方法可以让VB.Net以颜色常量的方式处理这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-18 16:29:34

在VB6中,颜色表示为Longs,在VB.NET中,颜色表示为结构。

来源

在VisualBasic6.0中,颜色由Long类型的值表示;在Visual 2008中,颜色是颜色类型。在VisualBasic6.0中,为八种标准颜色提供了常量;在Visual 2008中,有超过100种命名颜色。 Tip 若要查找不是标准颜色的VisualBasic6.0颜色的等效值,可以使用ColorTranslator类并将VisualBasic6.0颜色的长值传递给它。 颜色常数 在VisualBasic6.0中,为可用于将颜色映射到用户的系统首选项的系统颜色提供了常量。在Visual 2008中,系统颜色为SystemColors类型。

为了在功能上保持向后,您必须继续将颜色作为Longs传递,将代码更改为使用ColorTranslator类,如下所示:

代码语言:javascript
复制
Public Property ProgressBarColor() As Int32
  Get
    Return System.Drawing.ColorTranslator.ToOle(userform.ProgressBarColor)
  End Get
  Set(ByVal value As Int32)
     userform.ProgressBarColor = System.Drawing.ColorTranslator.FromOle(value)
  End Set
End Property
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24829450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档