1) You can either use a placeholder control or add the button to your form's control collection. As every control in the form has a index number you can use the AddAt(Int32, Control) method rather than the Add(Control) to position it where you want.
2) Try:
Code:
// Handle Click Event
void btnName_Click(object sender, EventArgs e) {
// Do whatever
}
// Create Button
Button btnName = new Button();
btnName.ID = "newButton";
btnName.Text = "Click here";
btnName.Click += new EventHandler(btnName_Click);
PlaceHolderName.Controls.Add(btnName);
Hope that makes sense.
DJ