在选项卡控件中单击一次按钮即可获得两个新选项卡

时间:2013-12-24 11:23:51

标签: c# winforms

大家好我想在winform中添加新标签我在表单中使用以下代码。但是当我点击按钮时,它会添加两个标签而不是一个标签 请查看我出错的代码

 private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
        {
            TabPage tab = new TabPage("New Tab");
            tabControl1.TabPages.Insert(tabControl1.TabPages.Count - 1,tab);
            tabControl1.SelectedTab = tab;

        }

1 个答案:

答案 0 :(得分:0)

这是因为您为tabControl1.Selected属性分配了新创建的页面。该分配再次引发SelectedIndexChanged并添加另一个标签页。

您可以阻止此递归向表单添加全局类级别变量,并在输入添加页面代码之前将其用作信号量

private bool addingPage = false;

....


 private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
 {
    if(!addingPage)
    {
        addingPage = true;
        TabPage tab = new TabPage("New Tab");
        tabControl1.TabPages.Insert(tabControl1.TabPages.Count - 1,tab);
        tabControl1.SelectedTab = tab;
        addingPage = false;
    }
 }