5

Windowsフォームにタブコントロールがあります。次の例を除いて、うまく機能しています。選択するとtabpage2、上のすべてのコントロールtabpage1がプロパティを FALSE として返しvisibleますが、これはすべてが に設定されているため、実際には正しくありませんvisible = false

すべての子コントロールが FALSE を継承するようtabpage1に設定されているためだと思います。visible = false

もちろん、tabpage1が選択されている場合は、すべてのコントロールが表示可能なプロパティの正しい値を返します。

回避策が必要です。誰にも解決策がありますか?

4

3 に答える 3

11

Visibleプロパティは少し特殊で、ゲッターは割り当てた値を返しません。コントロールが実際に表示されているかどうかを示します。選択されていないタブページに配置されている場合はそうではありません。これは仕様によるものです。

実際の「表示されることを意図した」状態を取得することはサポートされていません。GetState(2)から取得しますが、これは内部メソッドです。あなたが本当に必死なら、あなたはReflectionを使うことができます。しかし、適切な方法は、自分でそれを追跡することです。

于 2011-01-13T18:07:35.423 に答える
1

パネルのプロパティVisibleが期待どおりに動作していないため、Tag代わりにPanelのプロパティを何かに設定し、それを使用して検証に失敗するかどうかを判断してください。

于 2011-01-13T18:12:16.293 に答える
0

これを確認するために小さなプロジェクトを作成します。現在選択されていないVisibleタブ ページのコントロールのプロパティを確認すると、コントロールが表示されないため、false が返されます。

ユーザーが現在表示しているタブ ページを特定しようとしている場合は、TabControlのSelectedTabまたはプロパティを確認することをお勧めします。SelectedIndex

于 2011-01-13T16:59:13.817 に答える