Introduction
I wrote an article earlier to create an array of PictureBox
controls in your form. You can find it here: http://www.codeproject.com/KB/cs/PictureBox_Array.aspx. This article is about creating an array of Button
controls, Label
controls, and TextBox
controls in your form.
Background
My article has a Form
(frmCotrol
) with the following controls:
Panel
control (pnlButtons
) to hold an array of Button
s
Panel
control (pnlLabels
) to hold an array of Label
s
Panel
control (pnlTextBox
) to hold an array of TextBox
es
Button
control (btnAddButton
) to add an array of Button
s
Button
control (btnRemoveButton
) to remove a Button
Button
control (btnAddLabel
) to add an array of Label
s
Button
control (btnRemoveLabel
) to remove a Label
Button
control (btnAddText
) to add an array of TextBox
es
Button
control (btnRemoveText
) to remove a TextBox
Button
control (btnExit
) to exit the application
Using the code
I wrote a function to create an Array
of Button
s, Label
s, and TextBox
es at once:
private void AddControls( string anyControl, int cNumber)
{
switch (anyControl)
{
case "btn": {
btnArray = new System.Windows.Forms.Button[cNumber + 1];
for (int i = 0; i < cNumber + 1; i++)
{
btnArray[i] = new System.Windows.Forms.Button();
}
break;
}
case "lbl": {
lblArray = new System.Windows.Forms.Label[cNumber + 1];
for (int i = 0; i < cNumber + 1; i++)
{
lblArray[i] = new System.Windows.Forms.Label();
}
break;
}
case "txt": {
txtArray = new System.Windows.Forms.TextBox[cNumber + 1];
for (int i = 0; i < cNumber + 1; i++)
{
txtArray[i] = new System.Windows.Forms.TextBox();
}
break;
}
}
}
You can go to the functions in the source file to see how I create the Events and the result of these events which occurs when the control is clicked:
- The function
ClickButton()
will get the text of a Button
.
I put the event in the function ShowButton()
:
btnArray[n].Click += new System.EventHandler(ClickButton);
- The function
ClickLabel()
will copy the text from TextBox
to a Label
which has the same index.
I put the Event in the function ShowLabel()
:
btnLabel[n].Click += new System.EventHandler(ClickLabel);
- The function
ClickTextBox()
will edit it.
I put the Event in the function ShowTextBox()
:
btn TextBox [n].Click += new System.EventHandler(ClickTextBox);
About the code
Control array creation is not difficult, but I hope the new version of Visual Studio .NET will support control arrays as in VB6.
Finally
The file ControlArray.zip contains the source files of this article. I hope this article helps you to create arrays of any control. If you have any ideas, I would like to know about them, and all feedback is appreciated.
Sorry if you find errors in my English!
Thanks to CodeProject and all of you.