读书人

C# 多线程 动态添加UserControl,该如何

发布时间: 2012-03-24 14:00:46 作者: rapoo

C# 多线程 动态添加UserControl
现在界面上有个Panel,我启动另外一个线程把我创建好的UserControl 要添加到这个Panel里面里面。我知道跨线程操作控件要用delegate 然后调用Panel 的Invoke 方法,我是把UserControl 添加到Panel里面了,但是UserControl 里面我拖到上面的控件也都全没有了。我找到好久,都没有找到原因,不知道网上有没有哪位高手可以解决这个问题啊?




[解决办法]
添加之前先 SuspendLayout() 再添加,最后 ResumeLayout()
[解决办法]

探讨
添加之前先 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?

读书人网 >C#

热点推荐