
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 Buttons
Panel control (pnlLabels) to hold an array of Labels
Panel control (pnlTextBox) to hold an array of TextBoxes
Button control (btnAddButton) to add an array of Buttons
Button control (btnRemoveButton) to remove a Button
Button control (btnAddLabel) to add an array of Labels
Button control (btnRemoveLabel) to remove a Label
Button control (btnAddText) to add an array of TextBoxes
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 Buttons, Labels, and TextBoxes 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.