Я только что добавил ElementHost в форму Windows (в форме есть другой код на c #). Затем он выдал ошибку «Вызывающий поток должен быть STA, потому что это требуется для многих компонентов пользовательского интерфейса». Я изменил поток на STA, но он заблокировал другие вещи ... Есть ли в любом случае, чтобы заставить elementhost работать, не касаясь какого-либо другого кода?
вот код, как я меняю нить:
public UCClientSummary()
{
InitializeComponent();
Thread thread = new Thread(createElementHost);
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
thread.Join();
}
public void createElementHost()
{
ElementHost elementHost = new ElementHost();
elementHost.Dock = DockStyle.Fill;
LDControls.ucCell uc = new LDControls.ucCell();
elementHost.Child = uc;
this.Controls.Add(elementHost);
}