Populate Buttons With Database Values c#

Hi Guys okay so i have a database for this we will use a simple database.txt as reference

Text Database For Population 
Peter,Pan
James,Dean
Hal,lo
Calc,exe
Mad,Hatter
Patterson,Matthiew

I want to be able to add a button containing for example

 [Peter] , [James], ext ext

For Each Read Out Of The Database How Would I Pressure the population in this instance considering i have to create a button for each new name that is read from the database

Thanks In Advance

P.S. Initially i Used a dropdown with the following code

        List<MDB.Userdb> packObjects = new System.Collections.Generic.List<MDB.Userdb>();
        string colname = "UserRef";
        try
        {
            packObjects = MDB.User.RetrieveList();


            if (!dgvData.Columns.Contains(colname))
            {
                DataGridViewComboBoxColumn cb = new DataGridViewComboBoxColumn();
                cb.DataPropertyName = colname;
                cb.Name = colname;
                cb.HeaderText = colname;
                cb.DataSource = packObjects;
                cb.ValueMember = "Idx";
                cb.DisplayMember = "UserName";
                dgvData.Columns.Add(cb);
            }
            else
            {
                //refresh data in drop down
                DataGridViewComboBoxColumn ocb = (DataGridViewComboBoxColumn)dgvData.Columns[colname];
                ocb.DataPropertyName = colname;
                ocb.Name = colname;
                ocb.HeaderText = colname;
                ocb.DataSource = packObjects;
                ocb.ValueMember = "Idx";
                ocb.DisplayMember = "UserName";
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show("Unable to Retrieve User Detials " + ex.Message, "Retrieve User Detials", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }

Notes: WinForms c# .Net4.0


ANSWERS:


You can try the below code :

for (int i = 0; i < 5; i++)
        {
            Button newPanelButton = new Button();
            newPanelButton.Name = "txtRuntime" + i;
            newPanelButton.Text = "Runtime"+i;
            newPanelButton.Location = System.Drawing.Point.Add(new Point(4 + i * 307, 4), new Size(20, 20));// here make use of your logic.

            this.Controls.Add(newPanelButton);
        }

StreamReader menu = new StreamReader("database.txt");
        int repetition = 0;

        while (!menu.EndOfStream)
        {
            Button dynamicbutton = new Button();
            dynamicbutton.Click += new System.EventHandler(menuItem_Click);
            dynamicbutton.AutoSize = true;
            dynamicbutton.Text = menu.ReadLine();
            dynamicbutton.Visible = true;
            dynamicbutton.Location = new Point(4 + repetition * 307, 4);
            dynamicbutton.Height = 24;
            dynamicbutton.Width = dynamicbutton.Text.Length * 20;
            dynamicbutton.BackColor = Color.FromArgb(0, 0, 0);
            dynamicbutton.ForeColor = Color.White;
            dynamicbutton.Font = new Font("Arial", 7);
            dynamicbutton.Show();
            splitContainer1.Panel1.Controls.Add(dynamicbutton);
            repetition++;
        }
        menu.Close();

This Does The Trick With A Few Extra Things In The MenuItem_Click Event i Can Also Retrieve The Name Of The Button And So Forth



 MORE:


 ? Adding GUI controls dynamically
 ? trying to add/remove controls to a form
 ? removing dynamically created controls C#
 ? Add columns to a datatable in c#?
 ? ASP NET - C#: Access controls by Id
 ? Add a bunch of controls dynamically to screen in iOS
 ? Can't dynamically add new literal to ASP.NET Panel Control
 ? Add dynamic ASP.NET controls via a DropDownList to the page
 ? WinForm: control won't add to a panel
 ? ASP.NET refresh Update Panel