在Tab Control中找不到动态标签页

时间:2018-06-05 10:23:40

标签: c# winforms tabs

下午好,我的螺旋桨头;今天我带着一个非常奇怪的问题来找你。

在我的C#Winforms应用程序中,我有一个带Tab Control的表单。 Tab Control有4个Tab页面,我在设计时添加了它们。当我的应用程序运行时,我正在动态添加x量的标签页。

我的问题不在于我在设计时添加的任何标签页,而只包含动态标签页。动态标签页有按钮,单击时可以点亮。但是,当我遍历Tab Control的标签页时,只有静态标签页存在,控件中没有动态页面。

我有一个创建我的标签页的类,它都可以正常工作并添加标签页。类名是TabTree,方法名是Add_Tree_View_Tab。 “测试选项卡”是选项卡上显示的文本。 null参数此时无关紧要,因为它被输入到停靠在选项卡页面上的另一个控件。

tabRecords.TabPages.Add(TabTree.Add_Tree_View_Tab("test tab", null));

我还添加了一个标签页,看看我是否可以在标签控件中找到它,但仍然没有运气。

tabRecords.TabPages.Add("this page", "this page");

试图找到我的任何动态标签页都没有结果?

internal void Expand_Treeview(object sender, EventArgs e)
{
    try
    {
        Button button = (Button)sender;

        foreach (TabPage tab_page in tabRecords.TabPages)
        {
            if (tab_page.Name == "tab_" + button.Tag.ToString())
            {
                foreach (Control control in tab_page.Controls)
                {
                    if (control is TreeView && control.Name == "treeview_" + button.Tag.ToString())
                    {
                        TreeView Tree_view = (TreeView)control;


                    }
                }
            }
        }
    }

    catch (Exception ex)
    { }
}

我做错了什么或我错过了什么?我花了很多时间试图解决这个问题,目前还没有解决方案......

1 个答案:

答案 0 :(得分:0)

感谢大家的帮助,你肯定让我走上正轨。这是一个不同实例和破坏对象的案例。

有两个类可以创建动态选项卡。第一个类是实例化的,但也继承自第二个类。此外,第二个类继承自实际表单,以便能够添加标签页上存在的动态按钮事件处理程序。选项卡已创建,但只要第一个实例化类被销毁,对动态选项卡的所有引用都将丢失。这很有道理。我没有接受它,因为它是我继承的代码。

再次感谢大家的意见,让我排序。