2012-04-22 8 views
0

私は非常に簡単な質問があります。VB.NET:form.show()は呼び出されていますか?

フォーム上で.show().hide()を呼び出して、現在の状態を確認したいとします。私は.visibleをチェックしてフォームが表示されているかどうかを確認しましたが、問題が発生しました。私のフォームは、私がフォームを隠すたびに崩壊するSplitContainerの中でレンダリングされています。だから、ロジックでは、.hide()でフォームを隠すと、もはや表示されなくなりました。コンテナが閉じているので、.show()と呼んでもコンテナは閉じていません。

フォームが表示されているかどうかを確認する代わりに、.show()が呼び出されたかどうかを単に確認するにはどうすればよいですか。

最終的な目標は、コンテナの折りたたみ/折りたたみ解除と同時にフォームを表示()/非表示()することです。

ありがとうございます!

P .:私は単にコンテナをチェックし、それに応じてフォームを表示することができますが、私のフォームもコンテナからの分離をサポートするので、私のためには機能しません。

答えて

4

ここでショートカットをとることはできません。フォームのTopLevelプロパティを操作してパネルに配置できるようにすることで、フォームのVisibleプロパティは、最後にShow()またはHide()を呼び出したかどうかの信頼性の高い表示になりません。プロパティを読み取るのは、ユーザにフォームが表示されるかどうかだけであるためです。コントロールの親が表示されていない場合、Trueに設定しても、コントロールのVisibleプロパティはFalseを返します。

回避策は簡単です。ブール変数を使用して追跡してください。または、表示/非表示にする必要がある場合は表示と非表示を、表示されている場合は表示を呼び出し、表示されていない場合は非表示にしても問題ありません。

関連する問題