如何更改活动的mdi孩子?
问题描述:
嗯,这可能很简单,但我不能钉它。
我有一个胜利形式的应用程序与作为Mdi容器与ñ mdi孩子。 如何设置ActiveMdiChild?
例如,我有4个mdi孩子(0,1,2,3),我想将相应的数据传递给每个人...但只有主动获取数据。如何更改活动的mdi孩子?
答
要激活特定的MDI孩子,你可以使用MDI父母的方法ActivateMdiChild
并通过孩子激活。例如:
this.ActivateMdiChild(this.MdiChildren[0]);
激活窗体的MDI子。
如果表单参数已经是活动的MDI子表单,那么方法会简单地返回。如果表单不为空,则它将 设置为活动的MDI子表单。无论表单参数是否为 null,
ActivateMdiChild
都会引发MdiChildActivate
事件。
不工作....我猜是因为这里面的一个多线程方法,其中一个BlockingCollection数组被迭代,我尝试将适当的BC传递给每个孩子....我得到:跨线程操作无效:从其创建的线程以外的线程访问控制。 – John
这完全是一个不同的问题,我宁愿保持答案不变和干净。但是当你从不同于UI线程的线程调用方法时,可以使用'this.Invoke(new Action(()=> {this.ActivateMdiChild(this.MdiChildren [0]);}));' –
First两个[WinForms标签的常见问题](https://*.com/questions/tagged/winforms?sort=frequent)回答从另一个线程更新UI。 –