Есть ли способ, которым я могу сократить этот код? - PullRequest
2 голосов
/ 21 декабря 2011

Это код, который я хотел бы сократить, он использует индикатор выполнения и метку, которая ведет к нему обратный отсчет: я использую язык VB

 If ProgressBar1.Value = 33 And Label2.Text = "Now:  Hold down power button (3 seconds)" Then
            Label2.Text = "Now:  Hold down power button (2 seconds)"
        End If

        If ProgressBar1.Value = 66 And Label2.Text = "Now:  Hold down power button (2 seconds)" Then
            Label2.Text = "Now:  Hold down power button (1 seconds)"
        End If

        If ProgressBar1.Value = 99 And Label2.Text = "Now:  Hold down power button (1 seconds)" Then
            Label2.Text = "Now:  Hold down power button (0 seconds)"
        End If

        If ProgressBar1.Value = 100 And Label2.Text = "Now:  Hold down power button (0 seconds)" Then
            Label2.Text = "Now:  Also hold down the home button (10 seconds)"
            Label2.Location = New Point(30, Label2.Location.Y)
            Label3.Text = "Next:  Release the power button only (15 seconds)"
            ProgressBar1.Value = 0
        End If

1 Ответ

3 голосов
/ 21 декабря 2011

Да, есть:

    Const BASE_MESSAGE As String = "Now:  Hold down power button ({0} seconds)"

    Select Case ProgressBar1.Value
       Case 33
          Label2.Text = String.Format(BASE_MESSAGE, 2)
       Case 66
          Label2.Text = String.Format(BASE_MESSAGE, 1)
       Case 99 
          Label2.Text = String.Format(BASE_MESSAGE, 0)

       Case 100
          Label2.Text = "Now:  Also hold down the home button (10 seconds)"
          Label2.Location = New Point(30, Label2.Location.Y)
          Label3.Text = "Next:  Release the power button only (15 seconds)"
          ProgressBar1.Value = 0

    End Select
...