2015-10-19 4 views
0

Я создал массив из 10 строк. Сохраняется как временное предназначение. Однако мне нужен способ выполнения созданной мной строки. Я просто пытаюсь выполнить команду picturebox1.hide(), не набрав ее 10 раз подряд, изменив номер, следующий за кадром. Большое спасибо, Alex КарриVisual Basic Arrays - Выполнить строку

Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    Dim Holding(10) As String 
    For n = 1 To 10 
     Holding(n) = "picturebox" & n & ".hide" 
    Next 
End Sub 
+1

Используйте только применимые теги - ваш вопрос не о VB6 или VBA –

+0

Это очень плохой способ выполнить задание. Вместо этого вы должны пройти через элементы управления, проверить, является ли данный элемент управления графическим ящиком, а затем скрыть его. –

+0

Вы не можете поместить код в строковую переменную (или ее массив) и выполнить ее. Строка - это переменные. – Plutonix

ответ

0

Вы можете перебрать все элементы управления в форме (или контейнер, например, панели), проверьте, являются ли они PictureBox, а затем скрыть их, как так:

For Each x As Control In panel1.Controls 
    If TypeOf x Is PictureBox Then 
     x.Hide() 
    End If 
Next 

Прости меня, если я «Сделала глупую ошибку, Visual Basic - это то, что я не использовал в течение длительного времени.

+0

Большое спасибо Люку, немного подстроив его, отлично сработало. –

+0

Не проблема, также может быть хорошей идеей изменить название вопроса, чтобы помочь будущим зрителям. «Как скрыть все изображения в форме?» или что-то типа того. –

2

Вы просто пытаетесь скрыть все ваши изображения коробки?

Вместо массива строк, почему не массив ящиков с картинками?

Dim PictureBoxes = New PictureBox() {picturebox1, picturebox2, ... } 

For n = 1 to 10 
    PictureBoxes(n).hide 
Next 
Смежные вопросы