首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TabPage不断被创建。C#

TabPage不断被创建。C#
EN

Stack Overflow用户
提问于 2011-11-10 11:59:36
回答 2查看 926关注 0票数 1

即使选项卡控件中已经存在选项卡页,也会继续创建TabPage。请考虑我下面的代码:

代码语言:javascript
复制
void button1_Click(object sender, EventArgs e)
{
    TabPage tabPage = new TabPage();
    tabPage.Name = "TestNewTab";
    tabPage.Text = "Tab Page";

    // Check if the tabpage is not yet existing
    if (!tabControl1.TabPages.Contains(tabPage))
    {
        // Add the new tab page
        tabControl1.TabPages.Add(tabPage);
    }
}

我的代码出了什么问题?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-10 12:03:04

我的猜测是TabPages.Contains正在检查一个对象引用,因为您每次都要实例化一个新的TabPage,所以它不会是同一个对象。尝试遍历选项卡页并比较Name属性。

票数 4
EN

Stack Overflow用户

发布于 2011-11-10 12:03:49

问题是,当查找像TabPage这样的引用类型时,.Contains将检查相等引用,这与相等值不同。解决问题的简单方法可能是这样做:

代码语言:javascript
复制
TabPage tabPage;

void button1_Click(object sender, EventArgs e)
{
    // Check if the tabpage doesn't exist yet:
    if (tabPage == null)
    {
        // Create the tab page:
        tabPage = new TabPage();
        tabPage.Name = "TestNewTab";
        tabPage.Text = "Tab Page";

        // Add the new tab page:
        tabControl1.TabPages.Add(tabPage);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8074847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档