即使选项卡控件中已经存在选项卡页,也会继续创建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);
}
}我的代码出了什么问题?谢谢。
发布于 2011-11-10 12:03:04
我的猜测是TabPages.Contains正在检查一个对象引用,因为您每次都要实例化一个新的TabPage,所以它不会是同一个对象。尝试遍历选项卡页并比较Name属性。
发布于 2011-11-10 12:03:49
问题是,当查找像TabPage这样的引用类型时,.Contains将检查相等引用,这与相等值不同。解决问题的简单方法可能是这样做:
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);
}
}https://stackoverflow.com/questions/8074847
复制相似问题