下午好,我的螺旋桨头;今天我带着一个非常奇怪的问题来找你。
在我的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)
{ }
}
我做错了什么或我错过了什么?我花了很多时间试图解决这个问题,目前还没有解决方案......
答案 0 :(得分:0)
感谢大家的帮助,你肯定让我走上正轨。这是一个不同实例和破坏对象的案例。
有两个类可以创建动态选项卡。第一个类是实例化的,但也继承自第二个类。此外,第二个类继承自实际表单,以便能够添加标签页上存在的动态按钮事件处理程序。选项卡已创建,但只要第一个实例化类被销毁,对动态选项卡的所有引用都将丢失。这很有道理。我没有接受它,因为它是我继承的代码。
再次感谢大家的意见,让我排序。