2015-03-28 4 views
-3
Imports System.Threading.Thread 
Public Class Form1 
Dim delay As Integer = 200 
Dim i As Integer = 1 

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    While i <= 5 

     PictureBox1.Visible = True 
     PictureBox1.Refresh() 
     Sleep(delay) 
     PictureBox1.Visible = False 


     PictureBox2.Visible = True 
     PictureBox2.Refresh() 
     Sleep(delay) 
     PictureBox2.Visible = False 


     PictureBox3.Visible = True 
     PictureBox3.Refresh() 
     Sleep(delay) 
     PictureBox3.Visible = False 


     PictureBox4.Visible = True 
     PictureBox4.Refresh() 
     Sleep(delay) 
     PictureBox4.Visible = False 


     PictureBox5.Visible = True 
     PictureBox5.Refresh() 
     Sleep(delay) 
     PictureBox5.Visible = False 

     i = i + 1 
     If i = 6 Then 
      i = 1 
     End If 

    End While 
End Sub 

Я написал вышеуказанный код. работает. но следующий код не работает. Я хочу свести к минимуму код. Я хочу использовать 20 картинок. вместо этого кода я хочу использовать небольшой код, но он будет выполнять ту же работу. пожалуйста помогите.Как написать общий код для отображения большого количества изображений в vb.net 2.0?

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
    While i <= 5 
     Dim pic As PictureBox 
     Dim matches() As Control 

     matches = Me.Controls.Find("PictureBox" & i.ToString(), True) 
     If matches.Length > 0 AndAlso TypeOf matches(0) Is Label Then 
      pic = DirectCast(matches(0), PictureBox) 
      pic.Visible = True 
      pic.Refresh() 
      Sleep(delay) 
      pic.Visible = False 
     End If 

     i = i + 1 
     If i = 6 Then 
      i = 1 
     End If 
    End While 
End Sub 
    End Class 
+0

«Не работает» ничего не говорит нам ничего. –

+0

если я нажму кнопку button1, я получаю правильный вывод. но если я нажму кнопку2, то я не получаю такой же выход. Фактически, я хочу свести к минимуму кодировку button1. поэтому я использовал кодировку button2. пожалуйста помогите. –

+1

Вы делаете много вещей в корне неправильно. Вызов Sleep() и циклов запуска, которые никогда не выходят, являются ядом для программ, отображающих пользовательский интерфейс. И да, похоже, что «не работает», пользовательский интерфейс просто перестанет обновляться и не будет показывать никаких признаков прогресса. Просветите себя, вместо того, чтобы случайно использовать код, это не так просто догадаться. –

ответ

0
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
    While i <= 5 
     Dim pic As PictureBox 
     Dim matches() As Control 

     matches = Me.Controls.Find("PictureBox" & i.ToString(), True) 
     If matches.Length > 0 AndAlso TypeOf matches(0) Is PictureBox Then 
      pic = DirectCast(matches(0), PictureBox) 
      pic.Visible = True 
      pic.Refresh() 
      Wait(delay) 
      pic.Visible = False 
     End If 

     i = i + 1 
     If i = 6 Then 
      i = 1 
     End If 
    End While 
End Sub 

этот код правильно ... жаль, что я написал неправильный код 1-й раз .. теперь это правильно .. поблагодарить у всех ..

 Смежные вопросы

  • Нет связанных вопросов^_^