在 Winforms 中单击按钮时在选项卡控件中克隆选项卡

Cloning tabs in Tab Control on button click in Winforms

所以我在 winform TabControl 的 TabPages 之一上有一个主页。我有一个按钮,使用 Tabs.TabPages.Add("Homepage");

添加一个新标签

但是 TabPages.Add() 只是添加了一个新的空白页,我该如何在新选项卡上克隆我的主页?例如,如果我的主页有一个按钮 "Click me",当我打开一个新标签时,我希望它有相同的按钮 "Click me" 链接到相同的事件 "ClickMe_click"。就像一个 Chrome 选项卡控件。我在 msdn 上找不到为 TabControl 内置的任何事件或方法,除非我错过了。

如有任何帮助或提示或建议,我们将不胜感激。谢谢

您不能如此轻松地克隆标签页。可以 try 但推荐的方式是:

  • 创建一个 UserControl 并在您的页面上添加您想要的所有控件。使其成为 Dock=Fill 并添加连接控件的任何代码。您可以像在表单或标签页中一样自由布局..

  • 每当你想要另一个这种类型的页面时,添加一个新的标签页并将 UserControl 的一个实例添加到它的 Controls 集合中。

注意:默认情况下 UserControl 上的所有控件都是 private。这与直接将它们放在标签页上并没有什么不同。但现在它们是 UC class 的私有成员,因此您的表单及其代码无法访问它们。

当您是新手时,这看起来像是个问题。但如果你看对了,这是一个创建更精简和更干净的界面的好机会。

  • 解决方案 1:根据需要将控制修饰符更改为 public

  • 解决方案 2:添加属性以公开您真正想要公开的那些数据。

另请注意:您可以进行所有布局,但只能在 UC 设计器中进行。添加到表单或标签页后将没有嵌入式设计器..