Создание элемента управления из контрольного массива? - PullRequest
2 голосов
/ 08 мая 2011

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

    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 ]

4 голосов
/ 08 мая 2011

Он не будет отображаться, пока вы не добавите эти поля PictureBox в форму.

Полагаю, у вас уже есть форма Windows, поэтому все, что вам нужно сделать, это: Window.Controls.Add(PictureBox)

Предположим, ваш объект формы называется "Окно"

Вам нужно добавлять их по одному, и они не обязательно должны быть в массиве, поэтому в форме Windows есть коллекция Control

Control Array - это термин VB 6, больше не используется в .NET. Модель программирования между .NET и VB 6 отличается от очень , вам нужно время, чтобы пройти хороший учебник или хорошую книгу.

2 голосов
/ 08 мая 2011

Вам необходимо добавить его в форму или панель, где вы хотите, чтобы они / их отображались.

CreateControl только создает дочерние элементы и форсирует создание дескриптора элемента управления, но не помещает его в форму или родительский элемент управления (он также не знает, что его добавить!).

...