[英]Dynamic Tab Pages cannot be found within Tab Control
下午好,我的螺旋桨同行。 我今天遇到一个非常奇怪的问题。
在我的C#Winforms应用程序中,我有一个带有Tab控件的表单。 标签控件有4个标签页,这些标签页是我在设计期间添加的。 当我的应用程序运行时,我正在动态添加x数量的选项卡页。
我的问题不在于设计时添加的任何标签页,而在于动态标签页。 动态“标签页”具有按钮,单击这些按钮可以很好地触发。 但是,当我遍历选项卡控件的选项卡页时,仅存在静态选项卡页,而控件中没有动态页。
我有一个创建我的标签页的类,所有这些都工作正常,并按需添加标签页。 类名是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)
{ }
}
我做错了什么或我想念什么? 我花了我们很多人的努力,试图解决这个问题,但目前还没有解决方案……
感谢大家的帮助,您一定使我走上了正确的道路。 这是不同实例和对象被破坏的情况。
有两个类创建动态选项卡。 第一类被实例化,但也从第二类继承。 同样,第二个类继承自实际的形式,以便能够添加选项卡页面上存在的动态按钮事件处理程序。 这些选项卡已创建,但是一旦第一个实例化的类被销毁,所有对动态选项卡的引用都将丢失。 这很有意义。 我没有选择它,因为它是我继承的代码。
再次感谢大家的帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.