I made a application which will place out buttons in a grid where the user specifies how big the playfield should be. I create the buttons in a list, specify some data like backgroundimage, size, and location. I then need to, in some way make the different buttons execute different code. I figured I could do this in one method, (if there aren't any good ways to programmatically create methods), if I could somehow make the buttons send a unique piece of information to the method to identify which button is pressed.
    public void buttonplacer()
    {
        int nbrofbtns = Form2.puzzlesize * Form2.puzzlesize;
        List<Button> btnslist = new List<Button>();
        for (int i = 0; i < nbrofbtns; i++)
        {
            Button newButton = new Button();
            btnslist.Add(newButton);
            this.Controls.Add(newButton);
            newButton.Name = "btn" + i.ToString();
            newButton.Width = btnsidelength;
            newButton.Height = btnsidelength;
            newButton.Top = btnsidelength * Convert.ToInt32(Math.Floor(Convert.ToDouble(i / Form2.puzzlesize)));
            newButton.Left = btnsidelength * Convert.ToInt32(Math.Floor(Convert.ToDouble(i)) - Math.Floor((Convert.ToDouble(i)) / (Form2.puzzlesize)) * (Form2.puzzlesize));
            newButton.BackgroundImage = Lights_out_.Properties.Resources.LightsOutBlack;
            newButton.Click += new EventHandler(Any_Button_Click);
        }
    }
    void Any_Button_Click(object sender, EventArgs e)
    {
    }
(If you want to know I'm doing a game called "Light's out") Thanks in advance!
 
     
     
     
    