Enum constants that include spaces

Enum constants that include spaces

If you’re writing an ActiveX control, you can create properties that return an enumerated value, as in:

Public Enum SizeConstants    SizSmall = 1    SizMedium    SizLargeEnd EnumPublic Size As SizeConstants

When another developer is using your control, an enumerated property appears in the Property Window at design time as a combo box that contains all the constants you have defined in the Enum structure (“SizSmall”, “SizMedium” and “SizLarge”, in this case). What if you wish to add more descriptive names, that include spaces and other punctuation symbols? For instance, this is what Visual Basic itself does for a few property such as DrawMode (that exposes constants named “Copy Pen” or “Not Merge Pen”). Apparently these names would be rejected by the Visual Basic, but you can use them if you enclose their name between square brackets:

Public Enum SizeConstants    [Small Size] = 1    [Medium Size]    [Large Size]End Enum

A warning: if you use this trick, you must use the square brackets when referring to the constants in your code, both from within your ActiveX control project and in the client project:

MyControl.Size = [Medium Size]


Share the Post: