我有一个包含多个页面的向导。在每个页面上,我需要有一个 ToolStripDropDownButton,每个都具有完全相同的功能和 UI。整个向导和所有页面在显示任何页面之前创建。ToolStripDropDownButton 显示在页面边界内。当用户在一个页面上更改 ToolStripDropDownButton 的值时,它应该在其他页面上更新。
在每个页面上都有一个单独的控件实例,该实例订阅在任何其他控件的值更改时触发的事件。除了它的复杂性之外,这个解决方案没有任何问题。
我创建了 ToolStripDropDownButton 作为向导页面类的静态成员,在第一个请求时实例化它,并在每个页面创建时将相同的对象添加到它。这导致 ToolStripDropDownButton 没有出现在任何页面上(大概是因为我已将其添加到多个控件中,而 Winforms 不知道如何处理)。
如果无法将相同的控件实例添加到多个容器,是否有比引发和订阅事件更好的方法来完成任务?
你不能做你想做的事,控件只能有 1 个父级。
解决方法是:在每个页面的 VisibleChanged 事件上将控件从一个页面移动到下一个页面。从用户的角度来看,该控件存在于每个页面上,但实际上它在变得可见时被移动到“当前”页面。
| 归档时间: |
|
| 查看次数: |
762 次 |
| 最近记录: |