繁体   English   中英

检查标签页是否存在,如果不存在则创建一个新标签页

[英]Checking if tabpage exists, then create a new one if it doesn't

这是我的编码

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

出于某种原因,如果我启动线程(这个循环检查列表中是否出现新值,然后创建一个新页面。这段代码有效,它将显示一个用该值创建的新选项卡,然后大约1 秒钟它说“项目无响应”又名它崩溃了。所以我不知道如何修复它,我已经尝试过。tabControl1.TabPages,Contains(name)。和不同的循环样式,即使没有线程。它使新页面立即崩溃。

访问tabControl阻止ProgramThread。 因此,您实际上是在不停地阻止该线程。 尤其是在如此紧密的循环中,应用程序似乎无响应。

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

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

你可以尝试这样的事情:

for (int i = 0; i < TabControl.TabPages.Count; i++)
{
    if (TabControl.TabPages[i].Name == MyName)
    {
        TabControl.TabPages.Remove(RdpTabControl.TabPages[i]);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM