検索フォームを含む子フォームがあります。次のように、検索フォームの所有者を子フォームに設定します。
private void ShowFindForm()
{
FindForm.Show(this);
}
これにより、次のようにプロパティにアクセスできます。
private void FindNext()
{
TreeNode matchingNode = ...
... etc
... etc
OwnerForm form = this.Owner as OwnerForm;
form.TreeView.SelectedNode = matchingNode;
}
これは、所有者フォームを MDI フォームに押し込むまでは問題なく機能します。これにより、MDI フォームがすぐに検索フォームの所有権を取得し、すべてが台無しになります。どうすればこれを回避できますか?
アップデート:
必要なフォームが見つかるまで MDI フォームの MdiChildren プロパティを反復処理することで、この問題を回避できますが、これは少しカウボーイ的です。