あるスレッドで作成されたコントロールが別のスレッドで作成されたコントロールの親にならないことを解決します.

736 ワード

   public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Thread t = new Thread(new ThreadStart(CreateUI));
            t.Start();
        }
 
        private void CreateUI()
        {
            AddTextBox();
        }
 
        private void AddTextBox()
        {
            if (this.InvokeRequired)
            {
                this.Invoke(new MethodInvoker(delegate { AddTextBox(); }));
                return;
            }
            TextBox tb = new TextBox();
            tb.Text = "test";
            this.Controls.Add(tb);
        }
 
    }