C# 我们可以创建一个用户控件的一维数组吗。。?

C# 我们可以创建一个用户控件的一维数组吗。。?,c#,vb.net,winforms,user-controls,C#,Vb.net,Winforms,User Controls,我刚刚在WINFORMS中创建了一个“Usercontrol”,它只包含一个带有某种样式的按钮 我需要使用与数组(10)相同的函数并将其加载到表单中 Ex: Dim myButton() As Button = New ucSpecialButton(dataset4Category(i).Tables(0).Rows.Count - 1) {} 这里我的usercontrol名称是ucSpecialButton can we create a ONE-Dimensional Array o

我刚刚在WINFORMS中创建了一个
“Usercontrol”
,它只包含一个带有某种样式的按钮

我需要使用与数组(10)相同的函数并将其加载到表单中

Ex:

Dim myButton() As Button = New ucSpecialButton(dataset4Category(i).Tables(0).Rows.Count - 1) {}
这里我的usercontrol名称是
ucSpecialButton

can we create a ONE-Dimensional Array of a WINFORM usercontrol.?
是的,你可以

Control[] controls = new Control[10]; 

那么,问题出在哪里呢?

用MAKKAM的话说:是的,你可以。我猜您实际上不确定是否可以向表单添加动态数量的控件,因为在设计器中,您无法定义任何数组,只需在表单上拖放一定数量的控件

然而,实际上VisualStudio只是在后台生成一些代码,将这些控件添加到集合中。您也可以编写自己的代码,向集合动态添加任意数量的UserControl。只需查看表单'
.designer.cs
文件即可了解其工作原理

使用MAKKAM的数组
控件
可以如下所示,例如:

public MyForm()
{
    InitializeComponent(); // this is the call to the auto-generated code

    // Here you could add you own code:
    foreach (Control control in controls)
    {
        this.Controls.Add(control); // this is how to add a control to the form.
    }
}

我刚刚注意到你编辑了你的问题。如果我没弄错的话,你现在唯一缺少的就是(我是个C#guy,可能是以下VB.NET代码中有一些缺陷):

例如,您在问题中粘贴的代码尚未创建按钮,它仅为数组分配内存:

Dim myButton() As Button = New ucSpecialButton(
    dataset4Category(i).Tables(0).Rows.Count - 1) {}
New
此处的意思是为引用创建新数组,而不是创建新对象<代码>ucSpecialButton(…)此处不是对象的构造函数。相反,它只表示要准备数组的对象类型。您也可以编写
新按钮(…)

顺便问一下:我想应该是

`New ucSpecialButton(dataset4Category(i).Tables(0).Rows.Count)`

没有
-1
。然而,在for循环中,
-1
是正确的(大小为10的数组从0到9)。还是我遗漏了什么?这真的是你想要的吗?是的,但是。。!我想我不知道。这就是为什么发布这个问题的原因。试着删除
{}
,说“New Button”而不是“New ucSpecialButton”。但是,由于你提供的信息非常零碎,很难帮助你。
`New ucSpecialButton(dataset4Category(i).Tables(0).Rows.Count)`