我现在得到一个数据是整数0 - 6 之间,我想自己定义一个枚举,假如这个数是5 的话,我就想让窗体标题显示“星期五”。类推,不想用select case 或者 if elseif等方法,我觉得要是我经常需要判断的话,这样case ,case 好麻烦哦!
 Public Enum EnumType
   星期一 = 1
   星期二 = 2
   星期三 = 3
   星期四 = 4
   星期五 = 5
   星期六 = 6
   星期日 = 0
 End Enum
   
 End Enum
 Dim Week As EnumType
 Dim x As Integer
x的范围是0 to 6 
  现在我假如知道x = 5
  我可以直接知道是“星期五” 么?
 
 兄弟帮我解决这个小问题吧  

解决方案 »

  1.   

    用数组不就完了!
    dim arrDay(6) as string
    dim iDay as integer
       arrDay(1)="星期一"
       arrDay(2)="星期二"
       arrDay(3)="星期三"
       arrDay(4)="星期四"
       arrDay(5)="星期五"
       arrDay(6)="星期六"
       arrDay(0)="星期日"msgbox arrDay(iDay)
      

  2.   

    vb 内置函数 weekdaynamePrivate Sub Command1_Click()
    Dim x As Integer
    x = 5
    MsgBox WeekdayName(x + 1)
    End Sub
      

  3.   

    Private Sub Command1_Click()
    Dim x As Integer
    x = 5
    MsgBox WeekdayName(x, , vbMonday)
    End Sub
    MSDN:
    -------------------------------------------------------------------WeekdayName函数
          描述返回一个字符串,表示一星期中的某天。语法WeekdayName(weekday, abbreviate, firstdayofweek)WeekdayName函数语法有如下几部分:部分 描述 
    weekday 必需的。数字值,表示一星期中的某天。该数字值要依赖于firstdayofweek设置中的设置值来决定。 
    abbreviate 可选的。Boolean值,表示星期的名称是否被缩写。如果忽略该值,缺省值为False,表明星期的名称不能被缩写。 
    firstdayofweek 可选的。数字值,表示一星期中第一天。关于其值,请参阅“设置值”部分。 
    设置值firstdayofweek参数值如下:常数 值 描述 
    vbUseSystem 0 使用本国语言支持 (NLS) API设置值。 
    vbSunday 1 星期日(缺省)。 
    vbMonday 2 星期一 
    vbTuesday 3 星期二 
    vbWednesday 4 星期三 
    vbThursday 5 星期四 
    vbFriday 6 星期五 
    vbSaturday 7 星期六 
      

  4.   

    谢谢楼上的兄弟,以后我还是说的不要简单化了,我的本来目的是
          我用winsock接到一个整数数据0 - 6,要么是0 要么是1。
          发送接收商量好了,0 代表红色,1 代表白色.................我把我着边的背景色改为接收到的色彩。
      Public Enum EnumType
       vbred = 0
          .
          .
          .
          .
          .
        End Enum
     Dim x s EnumType
    GetVat 是接收到的整数,0 or 1 or 2 or 3    or 6
    'this GetVat = 0
      x =GetVat
    Form1.BackColor = x
    这样我想实现背景颜色是红色!
       还希望各位高手帮忙解答解答呀
      

  5.   

    x = getvat
    Me.BackColor = Array(vbRed, vbWhite, vbBlue, vbYellow)(x)
      

  6.   

    不大可能。这个涉及到编程中的“反射机制”问题。
    就目前众多的编程语言来说,都没有真正实现这个。你要的效果是:由枚举值获得枚举名称类似的效果还有:在过程内获取过程名;
    select case AAA
    case BBB:  XXXXXXXX
    在XXXX 部分获取AAA和BBB的值。类内部获取类名、从这个类申明的实例名称。
    。目前vb来说,都不可能