是否有可能改变.activecontrol导致RemoveControl被调用?
本文关键字:RemoveControl 调用 导致 activecontrol 能改变 是否 | 更新日期: 2023-09-27 18:15:00
在_visibechange事件的某处我正在改变ActiveControl:
private void ResultNumeric_VisibleChanged(object sender, EventArgs e)
{
if (this.Visible)
{
this.ActiveControl = this.resNumResult;
}
}
现在如果我遵循程序的一个工作流程,我的应用程序会崩溃。我看了一下StackTrace,它有一个对REMOVE的调用,它会把Parent设置为null,实际上crash也来自一个地方,我在一个Parent上调用一个方法,这是null。
at System.Windows.Forms.ContainerControl.AfterControlRemoved(Control control, Control oldParent)
at System.Windows.Forms.SplitContainer.AfterControlRemoved(Control control, Control oldParent)
at System.Windows.Forms.Control.ControlCollection.Remove(Control value)
所以是这个变化的ActiveControl导致Remove方法被调用吗?
我不认为设置ActiveControl会从表单的ControlCollection中移除控件。错误一定是在别的地方。您是否在代码的其他地方删除了控件?