繁体   English   中英

TabPage不断创建。 C#

[英]TabPage keeps being created. C#

即使标签页已经存在于我的标签控件中,TabPage仍会继续创建。 请考虑以下我的代码:

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);
    }
}

我的代码有什么问题? 谢谢。

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

问题是.Contains在查找类似TabPage的引用类型时会检查是否等于引用,而不是等于相等的值。 解决问题的一种简单方法是执行以下操作:

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);
    }
}

暂无
暂无

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

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