C# 多线程 动态添加UserControl
现在界面上有个Panel,我启动另外一个线程把我创建好的UserControl 要添加到这个Panel里面里面。我知道跨线程操作控件要用delegate 然后调用Panel 的Invoke 方法,我是把UserControl 添加到Panel里面了,但是UserControl 里面我拖到上面的控件也都全没有了。我找到好久,都没有找到原因,不知道网上有没有哪位高手可以解决这个问题啊?
[解决办法]
添加之前先 SuspendLayout() 再添加,最后 ResumeLayout()
[解决办法]
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?