检查tabpage是否存在,如果不存在则创建一个新的tabpage

时间:2012-05-03 02:06:10

标签: c# tabcontrol

这是我的编码

Thread groupid = new Thread(() => 
{
        while(true)
        {
            GroupIds.ForEach(delegate(String name)
            {
                if (tabControl1.TabPages.ContainsKey(name))
                {
                }
                else 
                    tabControl1.TabPages.Add(name);
            });
        }
});

由于某种原因,如果我启动线程(此循环检查列表中是否出现新值,然后创建新页面。此代码适用于该点,它将显示使用该值创建的新选项卡,然后在大约1秒之后它说“Project is no responponsive”又称它崩溃了。所以我不知道如何解决它,我已经尝试了!tabControl1.TabPages.Contains(名称),以及不同的循环风格。即使没有线程,它使新页面立即崩溃。

2 个答案:

答案 0 :(得分:0)

访问tabControl阻止ProgramThread。所以你实际上阻止了这个线程不停。特别是在如此紧凑的循环中,看起来应用程序没有响应。

答案 1 :(得分:0)

        if (!tabControl1.TabPages.Contains(tabPage2))
        {
            tabControl1.TabPages.Insert(1, tabPage2);
        }

这将检查表页面是否已经存在,如果没有,这将允许您创建一个