是否有可能更改.ActiveControl导致调用RemoveControl?

时间:2011-11-15 21:26:48

标签: c# winforms

_VisibleChanged事件的某处我正在更改ActiveControl:

private void ResultNumeric_VisibleChanged(object sender, EventArgs e)
{
    if (this.Visible)
    {
        this.ActiveControl = this.resNumResult;
    }
}

现在如果我按照程序的一个工作流程,我的应用程序崩溃了。我查看了StackTrace,它在其中调用了REMOVE,它将Parent设置为null,实际上崩溃也来自我在父节点上调用方法的地方,这是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方法?

1 个答案:

答案 0 :(得分:1)

我认为设置ActiveControl不会从窗体的ControlCollection中删除控件。错误必须在其他地方。您是否在代码中的其他位置删除了控件?