Динамическое добавление элементов управления в flowlayoutpanel

В форме Windows я могу динамически добавлять управление, выполнив следующие действия:

for (int i = 0; i < 5; i++)
{
    Button button = new Button();
    button.Location = new Point(160, 30 * i + 10);

    button.Tag = i;
    this.Controls.Add(button);
}

Как мне динамически добавлять элементы управления в FlowLayoutPanel?


person Karlx Swanovski    schedule 03.06.2013    source источник


Ответы (2)


Для FlowLayoutPanel, вам не нужно указывать .Location, поскольку элементы управления созданы для вас:

Представляет панель, которая динамически размещает свое содержимое по горизонтали или вертикали. ... Элемент управления FlowLayoutPanel упорядочивает свое содержимое в горизонтальном или вертикальном направлении потока. Его содержимое можно переносить из одной строки в другую или из одного столбца в следующий.

Просто измените flowLayoutPanel1 на имя вашего FlowLayoutPanel:

for (int i = 0; i < 5; i++)
{
    Button button = new Button();
    button.Tag = i;
    flowLayoutPanel1.Controls.Add(button);
}
person Idle_Mind    schedule 03.06.2013

Сделать динамический поток элементов из базы данных (sql server) в flowLayoutPanel1:

 void button1_Enter(object sender, EventArgs e)
    {
        Button btn = sender as Button;
        btn.BackColor = Color.Gold;
    }

void button1_Leave(object sender, EventArgs e)
    {
        Button btn = sender as Button;
        btn.BackColor = Color.Green;
    }


private void form1_Load(object sender, EventArgs e)
    {
        flowLayoutPanel1.Controls.Clear();
        SqlConnection cn = new SqlConnection(@"server=.;database=MyDatabase;integrated security=true");

        SqlDataAdapter da = new SqlDataAdapter("select * from Items order by ItemsName", cn);

        DataTable dt = new DataTable();
        da.Fill(dt);

        for (int i = 0; i < dt.Rows.Count; i++)
        {
            Button btn = new Button();
            btn.Name = "btn" + dt.Rows[i][1];
            btn.Tag = dt.Rows[i][1];
            btn.Text = dt.Rows[i][2].ToString();
            btn.Font = new Font("Arial", 14f, FontStyle.Bold);
            // btn.UseCompatibleTextRendering = true;
            btn.BackColor = Color.Green;
            btn.Height = 57;
            btn.Width = 116;
            btn.Click += button1_Click;   //  set any method
            btn.Enter += button1_Enter;   // 
            btn.Leave += button1_Leave;   //


            flowLayoutPanel1.Controls.Add(btn);                

        }
person Sherif Hamdy    schedule 09.10.2014
comment
Какое отношение SQL имеет к этому вопросу? - person Master Yoda; 08.01.2015
comment
Помогло мне, когда я добавляю элементы управления в форму из базы данных - person Mark; 25.09.2015