1

メインフォームの高さにアクセスする必要があるカスタムコントロールがあります。このコントロールは一連のパネルに入れ子になっているのが一般的であるため、メイン フォームに移動するために次のコードを記述しました。

TControl * control = this;

while( control->HasParent() )
{
    control = control->ParentControl;
    ShowMessage( control->Name );
}

ステートメントを使用しShowMessageて進行状況を追跡します。コードをステップ実行すると、「BasePanel」まで到達します。この場合、「MainForm」の前のはしごを上った最後のコントロールです。ただし、ShowMessage「MainForm」の呼び出しが発生すると、アクセス違反が発生します。

この方法でコントロールのメイン フォームにアクセスできない理由はありますか? コントロールのメイン フォームにアクセスするより良い方法はありますか?

4

1 に答える 1