2009-06-24 18 views
5

我需要维护几个VB6应用程序,并且在枚举名称时我遇到了一个奇怪的问题。 VB6中的Intellisense应该工作的方式是,如果我的变量名称被定义为字符串Dim Abraxis,并且在编码时键入abraxis,IDE会在我离开单词时将其更改为Abraxis。然而,我发现,如果我有一个枚举设立这样的,例如:VB6 IDE正在改变枚举名称的情况

Public Enum tiErrorEnum 
    tiNone = 0 
    tiWarning 
    tiError 
    tiDupDoc 
End Enum 

我用的是枚举的一个在一份声明中,如

ErrorNum = tinone 

期待套管由IDE修复,它不会将tinone更改为tiNone,但它确实将enum成员的def更改为tinone!完全倒退!

是否有解决方法?

回答

12

是的,有。这看起来有点奇怪,你可能想评论你为什么在代码中这样做,所以未来的开发者不会为此感到困惑,但这就是你想要做的。将枚举添加为编译器指令代码块中的公共项(因此编译器当然无法看到它)。您应该直接在枚举声明下执行此操作,如下所示:

Public Enum tiErrorEnum 
    tiNone = 0 
    tiWarning 
    tiError 
    tiDupDoc 
End Enum 
#If False Then 
    Public tiNone 
    Public tiWarning 
    Public tiError 
    Public tiDupDoc 
#End If 

简单。 IDE将正确识别并保存枚举名称,编译器将忽略该块。

+0

+1 - 希望我想到了他们几年前的所有 – Kev 2009-06-24 16:49:46

1

这是编辑器中的一个错误。我似乎记得,如果键入枚举的名称而不是使用智能感知,它会更改声明中枚举值名称的大小写。

1

诀窍是要始终符合您的枚举:然后

tiErrorEnum.tiDupDoc 

智能感知将正确列出枚举按点之后。如果枚举的名称很好,我认为这也有助于代码的可读性。