In this article I show you how to add the two controls "Textbox" & "Button" at runtime.
So first of all we will see how you can create an objects of those controls:
-> TextBox mytxt = new TextBox();
-> Button mybtn = new Button();
Using the above two lines it will create an object for "Textbox" & "Button" respectively.
After that we will add those controls into the form using the code shown below:
-> this.Controls.Add(mytxt);
-> this.Controls.Add(mybtn);
That will add "mytxt" & "mybtn" to your form.
After that you must set the location of the controls on the form:
-> mytxt.Location=new Point(10, 10);
-> mybtn.Location = new Point(10, 40);
Here you can set your own location which you want to show on the form.
Here Textbox will display at X-coordinate & Y-coordinate as 10.
And or button X-coordinate as 10 & Y-coordinate as 40.
After that set the value which will display on button.
-> mybtn.Text = "My Custom Button";
The above code is the basic part; now the main thing of this article is how you can add events of new added controls? Right?
-> mytxt.MouseHover += new EventHandler(mytxt_MouseHover);
-> mybtn.Click += new EventHandler(mybtn_Click);
Here I add one event for Textbox & another event for Button.
I add "MouseHover" event for the Texbox & "Click" event for the Button, but you can add your event from the list…
You can add another event for the list as shown in the image below:
One more thing to keep in mind is that you can write your own event method name instead of "mytxt_MouseHover" and "mybtn_Click", but it is a good practice to use the name as I use.
After that you can define your event like shown below:
void mytxt_MouseHover(object sender, EventArgs e)
{
//write here your logic for Textbox MouseHover Event…
}
Another thing is that whatever you use for your event method name, that name must match the method name used in the definition.
See the following image for a clearer understanding:
Main code :
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;
using System.Data.SqlClient;
namespace AddControlAndItsEventsAtRuntime
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//create new object of the textbox...
TextBox mytxt = new TextBox();
//add new custom textbox to form...
this.Controls.Add(mytxt);
//Set the location of textbox on to form...
mytxt.Location=new Point(10, 10);
//Add new Mouse Hover event for the textbox...
mytxt.MouseHover += new EventHandler(mytxt_MouseHover);
//create new object of the Button...
Button mybtn = new Button();
//add new custom Button to form...
this.Controls.Add(mybtn);
//Set the location of Button on to form...
mybtn.Location = new Point(10, 30);
//Set Text To Button....
mybtn.Text = "My Custom Button";
//Add new click event for the Button...
mybtn.Click += new EventHandler(mybtn_Click);
}
//New added textbox Mouse Hover evnet function definition...
void mytxt_MouseHover(object sender, EventArgs e)
{
MessageBox.Show("mytxt Mouse Hover Event....");
}
//New added Button Click evnet function definition...
void mybtn_Click(Object sender, EventArgs e)
{
MessageBox.Show("mybtn Click Event....");
}
}
}
The output of that is like below :
-> On MouseHover Event it will change the background color of the form to "LightGreen"...
-> on button "Click" event it will display MessageBox...
I hope this article is helpful for coders...