Ir para o conteúdo
Super Oliks

Atribuir mais de duas condições 'If

Mensagens Recomendadas

Super Oliks

Dim flag As String = 1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        If (flag = 1) Then
            Button1.BackColor = Color.Red
        ElseIf flag Then
            Button1.BackColor = Color.Blue
        ElseIf flag Then
            Button1.BackColor = Color.Black
        End If
        flag *= -1
    End Sub

ao clicar no 'button1 sucessivamente a cor de fundo do mesmo, tem apenas a atribuição "backcolor" red e blue aplicada ao button, sabem me dizer porque a condição "color.black" não está funcionado?

Desde já agradeço!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

1 - Deverias usar um SELECT:

Select Case flag
    Case "1"
    'codigo
    Case "2"
    'codigo
    '(...)
End Select

2 - Se flag é string, porque o estás a comparar a um Integer no primeiro IF?

3 - Os outros dois IFs vão devolver sempre True, porque não estás a comparar nada, estás apenas a testar se flag é verdadeiro, e flag como existe, avalia True. Por isso é que nunca te entra no último: porque entre sempre no primeiro.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Super Oliks

    Dim i As Integer = 1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        If (i = 1) Then
            Button1.Image = Image.FromFile("D:\ícones\icons\control_pause.png")
        Else
            Button1.Image = Image.FromFile("D:\ícones\icons\control_play.png")
        End If
        i *= -1
    End Sub

Consegui apenas atribuir duas condições, em tese é o que eu queria, deu certo agora. ( só não sei se essa é a melhor maneira, ou se é a maneira mais correta de aplicar essa condição)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

Já te respondi, em função do primeiro post.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Weasel

O teu problema é que tens dois Elseif iguais, ele apenas vai usar o 1º

ElseIf flag Then

ElseIf flag Then

Teria que ser algo tipo

Dim flag As String = 1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        If (flag = 1) Then
            Button1.BackColor = Color.Red
        ElseIf (flag = 2) Then
            Button1.BackColor = Color.Blue
        ElseIf (flag = 3) Then
            Button1.BackColor = Color.Black
        ElseIf (flag = 55) Then
            Button1.BackColor = Color.Green
        Else
            Button1.BackColor = Color.Yellow
       End If
        flag *= -1
    End Sub

Mas o ribeiro55 tem razão, neste caso a melhor opção é o Select


Knowledge to the masses


Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.