Jump to content
Super Oliks

Atribuir mais de duas condições 'If

Recommended Posts

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!

Share this post


Link to post
Share on other 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"

Share this post


Link to post
Share on other 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)

Share this post


Link to post
Share on other 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"

Share this post


Link to post
Share on other 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


Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.