C# 多线程 动态添加UserControl
现在界面上有个Panel,我启动另外一个线程把我创建好的UserControl 要添加到这个Panel里面里面。我知道跨线程操作控件要用delegate 然后调用Panel 的Invoke 方法,我是把UserControl 添加到Panel里面了,但是UserControl 里面我拖到上面的控件也都全没有了。我找到好久,都没有找到原因,不知道网上有没有哪位高手可以解决这个问题啊?
------解决方案--------------------添加之前先 SuspendLayout() 再添加,最后 ResumeLayout()
------解决方案--------------------
------解决方案--------------------
3楼的代码修改如下
C# code
if (panel.InvokeRequired)
{
this.SuspendLayout();
AddUserControlHandler handler = new AddUserControlHandler(panel.Controls.Add);
object obj = panel.Invoke(handler, vehicleStop);
this.ResumeLayout();
}
else
{
this.SuspendLayout();
panel.Controls.Add(vehicleStop);
this.ResumeLayout();
}
------解决方案--------------------
试试 control.Parent = panel?