Создание элемента управления из контрольного массива?
У меня есть массив графических блоков как так:
Dim pieces(500) As PictureBox
pieces(1) = New PictureBox
With pieces(1)
.CreateControl()
.Visible = True
.BackColor = Color.Red
.Width = 50
.Height = 50
.Left = 50
.Top = 50
End With
Программа не аварийно завершает работу или что-то еще, но в поле для картинок нет места, которое можно увидеть в форме. Как мне заставить эту работу работать правильно?
И является ли 'Control Array' правильным термином для этого? или что-то другое?
2 ответа
Он не будет отображаться, пока вы не добавите эти поля PictureBox в форму.
Я полагаю, у вас уже есть форма Windows, поэтому все, что вам нужно сделать, это:Window.Controls.Add(PictureBox)
Предположим, что ваш объект формы называется "Окно"
Вам нужно добавлять их по одному, и они не должны быть в массиве, поэтому в форме Windows есть коллекция Control.
Control Array - это термин VB 6, больше не используется в.NET. Модель программирования между.NET и VB 6 очень разная, вам нужно время, чтобы пройти хороший учебник или хорошую книгу.
Вам нужно добавить его в форму или панель, где вы хотите его / их отображать.
CreateControl создает только дочерние элементы и форсирует создание дескриптора элемента управления, но не помещает его в форму или родительский элемент управления (он также не будет знать, что его добавить!).