C# 我们可以创建一个用户控件的一维数组吗。。?
我刚刚在WINFORMS中创建了一个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
“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)`