Visual studio provides a very rich tool box,
useful to create nice UI, but what if we are in need create those controls at
run time, sure we could , that's what I am going to demonstrate now.
Code behind the form
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Windows.Forms;
namespace
CreateUserInterfaceControlsAt_RunTime
{
public partial
class Form1 :
Form
{
buttonCount = 0;
int textBoxCount = 0;
int ty = 100;
int by = 100;
public Form()
{
InitializeComponent();
}
private void
button1_Click(object sender,
EventArgs e)
{
by+=40;
buttonCount++;
Button b = new
Button();
b.Name =
"MyButton" + buttonCount.ToString();
b.Text =
"MyButton" + buttonCount.ToString(); ;
b.Size =
new Size(100,
35);
Point p = new
Point(20, by);
b.Location = p;
this.Controls.Add(b);
}
private void
button2_Click(object sender,
EventArgs e)
{
ty += 20;
textBoxCount++;
TextBox tx = new
TextBox();
tx.Name =
"MyTextBox" + textBoxCount.ToString();
tx.Text =
"MyTextBox" + textBoxCount.ToString(); ;
tx.Size =
new Size(100,
35);
Point p = new
Point(250, ty);
tx.Location = p;
this.Controls.Add(tx);
}
}
}
The UI
Let's explain the code, It is very simple :
- Create your instance of the wished
control:
Ex : Button b=new Button() ;
- Then give it it's property values: name,
location..
- And the key is to add it to the form to
be shown: this.Controls.Add(b)