Создание элемента управления из контрольного массива?

У меня есть массив графических блоков как так:

    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 создает только дочерние элементы и форсирует создание дескриптора элемента управления, но не помещает его в форму или родительский элемент управления (он также не будет знать, что его добавить!).

Другие вопросы по тегам