none
Select Case? RRS feed

  • Pergunta

  • Alguém poderia apresentar algum código mais conciso?

    Select Case numero
    
    Case 1
    If opt1 = True Then
    lblResposta.Caption = "Resposta Correta"
    Else
    lblResposta.Caption = "Resposta Incorreta"
    End If
    Case 2
    If opt2 = True Then
    lblResposta.Caption = "Resposta Correta"
    Else
    lblResposta.Caption = "Resposta Incorreta"
    End If
    Case 3
    If opt3 = True Then
    lblResposta.Caption = "Resposta Correta"
    Else
    lblResposta.Caption = "Resposta Incorreta"
    End If
    Case 4
    If opt4 = True Then
    lblResposta.Caption = "Resposta Correta"
    Else
    lblResposta.Caption = "Resposta Incorreta"
    End If
    Case 5
    If opt5 = True Then
    lblResposta.Caption = "Resposta Correta"
    Else
    lblResposta.Caption = "Resposta Incorreta"
    End If
    Case 6
    If opt6 = True Then
    lblResposta.Caption = "Resposta Correta"
    Else
    lblResposta.Caption = "Resposta Incorreta"
    End If
    Case 7
    If opt7 = True Then
    lblResposta.Caption = "Resposta Correta"
    Else
    lblResposta.Caption = "Resposta Incorreta"
    End If
    Case 8
    If opt8 = True Then
    lblResposta.Caption = "Resposta Correta"
    Else
    lblResposta.Caption = "Resposta Incorreta"
    End If
    Case 9
    If opt9 = True Then
    lblResposta.Caption = "Resposta Correta"
    Else
    lblResposta.Caption = "Resposta Incorreta"
    End If
    End Select



    sexta-feira, 12 de julho de 2013 00:37

Respostas

  • @Rafael
    Este é um fórum VBA, e você está usando funções e sintaxe VB.NET

    @Anderson
    Experimente:

    If Me.Controls("opt" & numero) = True Then
        Me.lblResposta = "Resposta Correta"
    Else
        Me.lblResposta = "Resposta Incorreta"
    End If


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    sexta-feira, 12 de julho de 2013 01:35
    Moderador

Todas as Respostas

  • If (Me.GetType().GetProperty("opt" & numero).GetValue(Me,null)) = True Then
        lblResposta.Caption = "Resposta Correta"
    Else
        lblResposta.Caption = "Resposta Incorreta"
    End If


    Rafael Schettino

    sexta-feira, 12 de julho de 2013 00:48
  • Em relação a

    GetType()

    Deu o erro

    Método ou membro de dados não encontrado

    sexta-feira, 12 de julho de 2013 01:03
  • Anderson, os campos opt1, opt2 etc etc são variáveis ou propriedades?
    Poderia postar aqui a forma como eles estão declarados?

    A diferença:

    Uma variável:

    Dim variavel as String

    Uma propriedade:

        Dim _variavel As String
        Public Property variavel As String
            Get
                Return _variavel
            End Get
            Set(value As String)
                _variavel = value
            End Set
        End Property
    

    Se forem variáveis, utilize "Me.GetType().GetField" ao invés de Me.GetType().GetProperty


    Rafael Schettino

    sexta-feira, 12 de julho de 2013 01:07
  • São controles OptionButtom
    sexta-feira, 12 de julho de 2013 01:10
  • Está faltando .Value no meu código.
    sexta-feira, 12 de julho de 2013 01:13
  • Use algo parecido com isso, então:

            Dim obj As RadioButton = Me.Controls.Find("opt" & numero, True).GetValue(0)
            If (obj.Checked) Then
                lblResposta.Caption = "Resposta Correta"
            else
                lblResposta.Caption = "Resposta Incorreta"
            End If

    Se não RadioButton, troque pelo controle que está usando. E se não for obj.Checked, troque pela propriedade do controle que está utilizando.


    Rafael Schettino

    sexta-feira, 12 de julho de 2013 01:23
  • @Rafael
    Este é um fórum VBA, e você está usando funções e sintaxe VB.NET

    @Anderson
    Experimente:

    If Me.Controls("opt" & numero) = True Then
        Me.lblResposta = "Resposta Correta"
    Else
        Me.lblResposta = "Resposta Incorreta"
    End If


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    sexta-feira, 12 de julho de 2013 01:35
    Moderador
  • Deu erro de sintaxe na linha

    Dim obj As optionButton = Me.Controls.Find("opt" & numero, True).GetValue(0)

    sexta-feira, 12 de julho de 2013 01:36
  • @anderson e @Benzadeus,

    Peço mil desculpas... não prestei atenção que era de VBA e não de VB.Net...


    Rafael Schettino, MCP
    O post de ajudou? Então marque como útil, por favor.

    sexta-feira, 12 de julho de 2013 01:37