Я только что заметил, что вы редактировали свой вопрос.Если я правильно понял, единственное, чего вам сейчас не хватает - это (я парень на C #, возможно, в следующем коде VB.NET есть некоторые недостатки):
for i = 0 to dataset4Category(i).Tables(0).Rows.Count - 1
myButton(i) = New ucSpecialButton();
// ... specific button properties ...
next
Для,код, вставленный в ваш вопрос, еще не создает кнопки, он только выделяет память для массива:
Dim myButton() As Button = New ucSpecialButton(
dataset4Category(i).Tables(0).Rows.Count - 1) {}
New
в этом месте означает создание нового массива для ссылок, а несоздавать новые объекты.ucSpecialButton(...)
в этом месте не является конструктором объекта.Вместо этого он обозначает только тип объекта, для которого вы хотите подготовить массив.ИМХО точно так же можно написать New Button(...)
.
Кстати: ИМХО это должно быть
`New ucSpecialButton(dataset4Category(i).Tables(0).Rows.Count)`
Без - 1
.Однако в цикле for значение - 1
является правильным (массив размером 10 равен 0..9).