Элементы управления, созданные в одном потоке, не могут быть родительскими для элемента управления в другом потоке - C#
Формулировка задачи:
Привет
Есть задача - нужно динамически добавлять компоненты. Все работает хорошо.
Но если добавлять через цикл то начинает зависать форма и элементы не прорисовываются.
Вот что получается пока компоненты добавляются.
http://www.cyberforum.ru/attachment....1&d=1376561587
После добавления всех компонентов получится так.
http://www.cyberforum.ru/attachment....1&d=1376561783
Как можно организовать правильное добавление компонентов без всяких зависаний формы и глюков прорисовки ?
Может как то асинхронно или в отдельном потоке. Нужна помощь, поиск в инете не помог разобраться. Заранее Спасибо Вот код как добавляю компонент. ClassLibrary1.K_v1 tb;
public void Add(Image Imegs, string Text1, string Text2, string Text3, string Text4)
{
tb = new ClassLibrary1.K_v1();
tb.Dock = DockStyle.Top;
tb.ForeColor = this.ForeColor;
tb.Text1to4(Imegs, Text1, Text2, Text3, Text4);
this.Controls.Add(tb);
tb.Click += new EventHandler(this.button1_Click);
}Решение задачи: «Элементы управления, созданные в одном потоке, не могут быть родительскими для элемента управления в другом потоке»
textual
Листинг программы
this.Invoke(new MethodInvoker(() => {
Button tb = new Button();
tb.Location = new Point(0, i * 30);
tb.ForeColor = this.ForeColor;
tb.Text = (i + 1).ToString();
this.Controls.Add(tb);
}));