首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2012-03-24 
C# 多线程 动态添加UserControl现在界面上有个Panel,我启动另外一个线程把我创建好的UserControl 要添加到

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?

热点排行