メインフォームの高さにアクセスする必要があるカスタムコントロールがあります。このコントロールは一連のパネルに入れ子になっているのが一般的であるため、メイン フォームに移動するために次のコードを記述しました。
TControl * control = this;
while( control->HasParent() )
{
control = control->ParentControl;
ShowMessage( control->Name );
}
ステートメントを使用しShowMessage
て進行状況を追跡します。コードをステップ実行すると、「BasePanel」まで到達します。この場合、「MainForm」の前のはしごを上った最後のコントロールです。ただし、ShowMessage
「MainForm」の呼び出しが発生すると、アクセス違反が発生します。
この方法でコントロールのメイン フォームにアクセスできない理由はありますか? コントロールのメイン フォームにアクセスするより良い方法はありますか?