Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to handle programmatically added button events? c#

I'm making a windows forms application using C#. I add buttons and other controls programmatically at run time. I'd like to know how to handle those buttons' click events?

like image 773
jello Avatar asked Jan 20 '10 19:01

jello


3 Answers

Try the following

Button b1 = CreateMyButton();
b1.Click += new EventHandler(this.MyButtonHandler);
...
void MyButtonHandler(object sender, EventArgs e) {
  ...
}
like image 185
JaredPar Avatar answered Nov 01 '22 20:11

JaredPar


Use this code to handle several buttons' click events:

    private int counter=0;

    private void CreateButton_Click(object sender, EventArgs e)
    {
        //Create new button.
        Button button = new Button();

        //Set name for a button to recognize it later.
        button.Name = "Butt"+counter;

       // you can added other attribute here.
        button.Text = "New";
        button.Location = new Point(70,70);
        button.Size = new Size(100, 100);

       // Increase counter for adding new button later.
        counter++;

        // add click event to the button.
        button.Click += new EventHandler(NewButton_Click);
   }

    // In event method.
    private void NewButton_Click(object sender, EventArgs e)
    {
        Button btn = (Button) sender; 

        for (int i = 0; i < counter; i++)
        {
            if (btn.Name == ("Butt" + i))
            {
                // When find specific button do what do you want.
                //Then exit from loop by break.
                break;
            }
        }
    }
like image 33
Jameel Avatar answered Nov 01 '22 21:11

Jameel


If you want to see what button was clicked then you can do the following once you create and assign the buttons. Considering that you create the button IDs manually:

protected void btn_click(object sender, EventArgs e) {
     Button btn = (Button)sender // if you're sure that the sender is button, 
                                 // otherwise check if it is null
     if(btn.ID == "blablabla") 
         // then do whatever you want
}

You can also check them from giving a command argument to each button.

like image 3
Shaokan Avatar answered Nov 01 '22 19:11

Shaokan