2011-11-15 4 views
-1

どこか_VisibleChangedイベントで、私はACTIVECONTROLを変更しています:.ActiveControlを変更するとRemoveControlが呼び出される可能性はありますか?

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

を今、私はプログラムの1つの作業の流れに従うならば、私のアプリがクラッシュします。私は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) 

このように、Removeメソッドが呼び出されるのは、このActiveControlの変更ですか?

答えて

1

ActiveControlを設定すると、フォームのControlCollectionからコントロールが削除されるとは思われません。エラーは他の場所にある必要があります。コードのどこか他の場所からコントロールを削除していますか?

+0

私はもっと調査する必要があります。 ActoveControlが原因ではないことを確認したかったのです。ありがとう – Bohn

+1

あなたが神経質になるような別のコード構造が見つかった場合は、疑問を持ってください! – Fischermaen

+0

ええ、この質問で私が話していたクラッシュとヌル・ペアレントは、この質問に対する答えを見つけるために私がやっている調査の一部です:http://stackoverflow.com/questions/8139252/why-the-parent -on-a-user-control-is-nullは、これが私がその答えを見つけるために行っていた調査の一部であった主な問題です。 – Bohn

関連する問題