int nNumber = 5; // # of buttons to add ArrayList aButtons = new ArrayList(); for(int nCtr=0;nCtr<nNumber;nCtr++) { int nVerticalPos = 35 * (nCtr+1); to create them at a certain vertical offset System.Windows.Forms.Button oButton = new System.Windows.Forms.Button(); oButton.Top = nVerticalPos; oButton.Name = "MyButton" + nCtr.ToString(); // create a name oButton.Left = 15 ; oButton.Text = "Button #" + nCtr.ToString(); // sample caption aButtons.Add(oButton); // add the object to an arraylist that I may use later this.Controls.Add(oButton); // add the control to the form oButton.Click += new EventHandler(MyHandler); // set up a handler for the click event } private void MyHandler(object sender, System.EventArgs e) { System.Windows.Forms.Button oButton = (System.Windows.Forms.Button)sender; MessageBox.Show(oButton.Name.ToString()); }The arraylist is just in case I need to iterate through the controls. Also, you need to do 'this.controls.add()', to add the buttons to the form.