Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Creating winforms controls dynamically

Tags:

c#

winforms

I am learning c#. I want to create some controls dynamically. Here is the code that I am trying to create new elements on form dynamically, but it doesn't do anything. Please help me to solve this problem.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

    namespace Sampless
    {
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int n = 4;

        private void btnDisplay_Click(object sender, EventArgs e)
        {
            TextBox[] textBox = new TextBox[n];
            Label[] label = new Label[n];

            for (int i = 0; i < n; i++)
            {
                textBox[i] = new TextBox();
                textBox[i].Name = "n" + i;
                textBox[i].Text = "n" + i;

                label[i] = new Label();
                label[i].Name = "n" + i;
                label[i].Text = "n" + i;
            }

            for (int i = 0; i < n; i++)
            {
                this.Controls.Add(textBox[i]);
                this.Controls.Add(label[i]);
            }
        }
    }
}
like image 273
Muhammad Sohail Avatar asked Feb 07 '14 17:02

Muhammad Sohail


1 Answers

You're adding all of the controls on top of each other, which is why it looks like there is only one of them. You'll want to put them in some sort of layout based control/panel (such as a FlowLayoutPanel) that will automatically place the structures in the appropriate location based on the type of layout that you want.

like image 74
Servy Avatar answered Oct 10 '22 01:10

Servy