大家好我想在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;
}
答案 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;
}
}