处理 c# 2.0 .NET windows 窗体
我想在另一个窗体页面中显示窗体的现有选项卡,以引用具有我要显示的选项卡的页面。?
我不确定我是否正确理解了您的问题,但这是我得到的:您有一个窗口窗体,说 FormA,您有一个选项卡控件,选项卡页可能包含更多控件,例如 TextBoxes 等。现在您想要这个 TabControl 与它的所有子控件都被移动到一个新的表单中,比如 FormB,MOVED 是指 FormA 上的选项卡控件的实例,而不是一个新的实例。这意味着如果用户在 TabPage 中的 TextBox 上输入了一些内容,那么当整个控件移到那里时,即使用户输入的文本也应该出现在 FormB 中。
如果上述情况是正确的,那么正如上面有人指出的那样,这在 .Net 中是不允许的,一个控件托管在一个容器中,它不能同时在两个地方可见。
但是,您可能有兴趣暂时以另一种形式显示(而不是使用)控件,如果我完全从第一种形式中删除控件,那也没关系。假设 FormA 将 FormB 作为模态窗口打开并将其自己的选项卡控件传递给它,用户将使用 FormB 上的控件然后关闭模态窗体 FormB 并且选项卡控件回到其原始位置。
这是很有可能的,只需从 FormA 中的容器中删除 Tab 控件,将其传递给 FormB,FormB 会将其添加到某个容器并显示它,反之亦然。
例如。说一个按钮点击FormA你可以写:
FormB myForm = new FormB();
this.Controls.Remove(this.tabControl1);
myForm.AddTabControlToPanel(this.tabControl1);
myForm.Show();
那么FormB将有一个功能
public void AddTabControlToPanel(TabControl tc)
{
panel1.Controls.Add(tc);
tc.Left = 10;
tc.Top = 10;
tc.Width = 200;
tc.Height = 200;
}