Are you trying to actually create a new control (ie, a custom control), or are you just trying to stick a bunch of stuff onto a panel? If it's the former, it's a little involved, particularly if you want design-time support (support in the drag-and-drop 'forms designer'). If it's the latter, you can just add them in the designer. If you need to iterate through them with array notation, you add the TextBoxes (or whatever) in the designer, and give them descriptive names (not necessary, but a good habit to get into). Then, in your code, you create an array of TextBoxes, and assign the references:
TextBox[] textBoxArray = new TextBox[numberOfTextBoxes];
textBoxArray[0] = txtInput;
textBoxArray[1] = txtOutput;
textBoxArray[2] = txtSomethingElse;
// and so on
Now you can process them in a loop, which is probably why you want to use an array:
for(int x=0; x<textBoxArray.Length; ++x)
textBoxArray[x].Text = x.ToString();
Remember that even though you can create an array of controls, you still need to initialize each element of the array appropriately. The designer is the easiest way to do this; otherwise, you need to set the width, height, location, etc of each one individually.