ejemplos c# winforms dynamic-controls flowlayoutpanel

flowlayoutpanel c# ejemplos



Añadir controles dinámicamente en flowlayoutpanel (2)

Haga que los elementos fluyan dinámicamente de la base de datos (servidor sql) a 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); }

En un formulario de Windows, puedo agregar el control dinámicamente haciendo esto:

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); }

¿Cómo agrego controles dinámicamente en un FlowLayoutPanel ?


Para un FlowLayoutPanel , no necesita especificar una ubicación ya que los controles están dispuestos para usted. Simplemente cambie " flowLayoutPanel1 " al nombre de su FlowLayoutPanel :

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