gpt4 book ai didi

c# - 是否可以将 Windows 窗体控件的相同实例添加到多个容器中?

转载 作者:行者123 更新时间:2023-11-30 12:22:03 25 4
gpt4 key购买 nike

我想要完成的事情:

我有一个包含多个页面的向导。在每个页面上,我都需要一个 ToolStripDropDownButton,每个按钮都具有完全相同的功能和 UI。整个向导和所有页面都是在显示之前创建的。 ToolStripDropDownButton 显示在页面的边界内。当用户在一个页面上更改 ToolStripDropDownButton 的值时,它应该在其他页面上更新。

我试图避免的替代解决方案:

在每个页面上有一个单独的控件实例,该实例订阅在任何其他控件的值更改时触发的事件。除了复杂之外,这个解决方案没有任何问题。

我尝试过的:

我将 ToolStripDropDownButton 创建为向导页面类的静态成员,在第一次请求时将其实例化,并在创建时将相同的对象添加到每个页面。这导致 ToolStripDropDownButton 不出现在任何页面上(大概是因为我已将它添加到多个控件并且 Winforms 不知道如何处理它)。

如果无法将相同的控件实例添加到多个容器,是否有比引发和订阅事件更好的方法来完成任务?

最佳答案

你不能做你想做的事,控件只能有 1 个父级。

解决方法是:在每个页面的 VisibleChanged 事件上将控件从一个页面移动到下一个页面。从用户的角度来看,控件存在于每个页面上,但实际上它在变得可见时被移动到“当前”页面。

关于c# - 是否可以将 Windows 窗体控件的相同实例添加到多个容器中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42672990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com