2012-06-29 107 views
0

工作的C#2.0 .NET Windows窗体如何在另一个窗体窗体页面中添加窗体窗体的现有选项卡?

我想显示现有的Windows窗体选项卡在另一个windows窗体页referecing其中有我想要显示的选项卡页面。?

+0

都在同一个应用程序,这些标签? –

+0

我不相信Windows窗体允许一个控件(按钮,选项卡,容器等)出现在多个位置,所以我不确定这是可能的。你有什么尝试? –

+0

@是相同的应用程序。 – theklc

回答

1

我不知道如果我理解你的问题是正确的,但这里是我得到: 你有一个窗口的形式说备考上,您有一个选项卡控件,标签页中可能包含文本框等 一些更多的控制现在你希望这个TabControl及其所有的子控件被移动到一个新的FormB,通过MOVED我的意思是FormA上的Tab控件的实例,而不是一个新的实例。这意味着如果用户在TabPage中输入了某个文本框,甚至用户的输入文本应该出现在FormB中,当整个控件移动到那里时。

如果上面的场景是正确的,那么上面的人指出这不允许在.Net一个控件托管在一个容器中,它不能在两个地方同时可见。

但是,您可能有兴趣以一种方式显示(而不是使用)另一种形式的控件,而且如果我完全从第一种形式中删除控件,则可以。假设FormA将FormB作为模式窗口打开并将其自身的Tab Control传递给它,用户将使用FormB上的控件,然后关闭模式FormB,并且Tab控件返回原始位置。

这是完全可能的,只需从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; 
    } 
相关问题