0 / 0 / 0
Регистрация: 29.05.2016
Сообщений: 3
1

Динамическое создание Control в асинхронном потоке

10.11.2017, 00:31. Показов 1331. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер
Знаю тема избита, перечитал много чего в том числе и форум, но при попытке реализовать решение ничего не выходит
Суть в чем создаю асинхронный поток, в этом потоке вызываю некоторый метод, в этом методе инициализируется new UserControl и вызывается новая функция в которой задаются параметры, размещения этого UserControl, но при добавлении его выдается ошибка о том что "Элементы управления, созданные в одном потоке, не могут быть родительскими для элемента управления в другом потоке".

C#
1
2
3
4
5
6
7
8
9
10
async void AsCool()
{
...
await Task.Run(()=>
{
...
AddMessage(Sentence, FlagMsg, Seach);
...
})
}

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public void AddMessage(string message, bool FlagMsg,List<string> Seach)
        {
            if (FlagMsg == true)
            {
                UserControl1 CPA = new UserControl1(message, UserControl1.msgType.In,Seach);
                ADD(CPA);
            }
            else
            {
                UserControl1 CPA = new UserControl1(message, UserControl1.msgType.Out,Seach);
                ADD(CPA);
            }
        }
 
        private void ADD(UserControl1 CPA)
        {
            CPA.Location = new Point(20, 0);
            if (flagMessage == 1)
            {
                CPA.Top = 10;
                flagMessage++;
            }
            else
            {
                CPA.Top = CPA_old.Bottom;
            }
            MsgPanel.Controls.Add(CPA);
 
            MsgPanel.VerticalScroll.Value = MsgPanel.VerticalScroll.Maximum;
            CPA_old = CPA;
        }
и Вот как раз в MsgPanel.Controls.Add(CPA); возникает данная ошибка
Помогите люди добрые(((
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.11.2017, 00:31
Ответы с готовыми решениями:

Динамическое создание объектов в дополнительном потоке
Добрый день! У меня имеется следующая ситуация с проблемой: При запуске программы из интернета...

Список пользователей онлайн (динамическое создание TextBox в отдельном потоке)
Пишу клиент-серверный чат, использую TcpClient. Нужно реализовать список пользователей онлайн на...

Динамическое создание Control (элемента управления)
имею следующие данные String* sType = 'Button'; String* sName = 'm_btn'; int iX = 200; int iY...

Работа с исключениями в асинхронном потоке BackgroundWorker_DoWork()
Добрый день! Работаю с компонентом BackgroundWorker. В обработчике DoWork вызываю метод, который...

0
10.11.2017, 00:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2017, 00:31
Помогаю со студенческими работами здесь

Создание/удаление/изменение файлов в потоке. А так же мониторинг файлов в потоке
Вот задание: имеется заданный каталог, потоки читатели считывают и отображают информацию о файлах...

Какая разница между Web server control, Composite control и User Control
Подскажите, пожалуйста, какая разница между Web server control, Composite control и User Control, а...

Создание Edit Control
Всем добрый день. Попытаюсь подробно объяснить суть проблемы. (MSV 2010) Когда мы создаем...

Создание Onredirect в потоке
Здравствуйте, есть поток, в нем динамически создается IdHTTP, как в потоке к нему вызвать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru