如下代码:
private void tabControl_ControlRemoved(object sender, ControlEventArgs e)
{
MessageBox.Show(tabControl.TabCount.ToString());
}
我假设应该告诉我在关闭最后一个选项卡后TabControl中没有控件(选项卡页)。但相反,它告诉我有1。
这是TabControl.ControlRemoved的预期行为,还是某种错误?
最佳答案
这只是一个执行顺序问题。在触发ControlRemoved事件之后,TabCount属性才会更新。这些问题在事件中相当普遍。
您可以通过在引发事件并完成所有处理之后执行代码来解决此问题:
private void tabControl1_ControlRemoved(object sender, ControlEventArgs e) {
this.BeginInvoke(new Action(() => {
MessageBox.Show(tabControl1.TabCount.ToString());
}));
}
关于c# - TabControl.ControlRemoved的预期行为是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18453971/