0

处理 c# 2.0 .NET windows 窗体

我想在另一个窗体页面中显示窗体的现有选项卡,以引用具有我要显示的选项卡的页面。?

4

1 回答 1

1

我不确定我是否正确理解了您的问题,但这是我得到的:您有一个窗口窗体,说 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;
    }
于 2012-07-03T08:32:00.687 回答