0

とても簡単な質問があります。

.show()フォームでandを呼び出して.hide()から、現在の状態を判断したいと考えています。.visibleフォームが表示されているかどうかを確認してきましたが、問題が発生しました。私のフォームは、フォームを非表示にするたびに折りたたむ SplitContainer 内でレンダリングされています。したがって、論理的には、フォームを非表示にして非表示にすると、コンテナーが折りたたまれているため、コンテナーが閉じられているため.hide()、呼び出してもまだ表示されません。.show()

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

最終的な目標は、フォームを show() / hide() し、コンテナーを折りたたむ/折りたたまないようにすることです。

前もって感謝します!

PS: コンテナをチェックしてそれに応じてフォームを表示するだけでよいことはわかっていますが、私のフォームはコンテナからのデタッチもサポートしているため、うまくいきません。

4

1 に答える 1

4

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

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

于 2012-04-22T13:47:46.710 に答える