【发布时间】:2020-09-24 13:16:27
【问题描述】:
VB.NET 2015 -- 在 MDI 窗口中放置了带有 2 个 ToolStripStatusLabel 的 StatusStrip 控件。当我打开一个新表单时,这将是 MDI 窗口的子窗口。
我如何从信息 ToolStripStatusLabel 中读取。
For Each 不会遍历 StatusStrip 中的所有项目,据我所知,ToolStripStatusLabel 本身不是一个控件,因此 For each 循环不起作用。
Me.Owner.Controls 也无法访问 ToolStripStatusLabel,原因同上
做什么?
【问题讨论】:
-
你为什么要使用
Me.Owner?首先,您是如何使孩子形成孩子形式的?您设置了MdiParent属性,对吗?所以很明显,您使用Me.MdiParent来访问MDI 父级。您可以将其转换为其实际类型(而不仅仅是Form),然后访问其所有成员,包括StatusStrip。 -
也就是说,这并不是真正合适的方法。理想情况下,如果子表单需要来自父表单的数据,它会引发一个事件。然后父表单处理该事件并设置
e参数的属性,然后子表单可以读取该属性。这样,子表单就不必知道有关父表单的任何具体信息。此外,数据不应来自StatusStrip。父表单应该将用于设置标签文本的原始数据存储在某处,并且这些数据应该传递给子表单。我会发布这个效果的答案。
标签: vb.net