特定のシナリオでは、複数のフォームが存在する場合でも、Application.OpenForms.Count プロパティに予期せず 0 フォームが表示されることがあります。開いています。この問題は、フォームの作成後に特定のプロパティが変更された場合の Windows フォーム内の既知のバグに起因します。
このバグを引き起こすプロパティinclude:
Whenこれらのプロパティがウィンドウの作成後に変更されると、Windows フォームは更新されたスタイル設定でウィンドウを再作成しようとしますが、フォームを Application.OpenForms コレクションに再度含めることはできません。この不一致により、カウントが不正確になります。
問題の解決
このバグを回避するには、CreateWindowEx( の前に、前述のプロパティがコンストラクター内でのみ設定されていることを確認してください。 )呼び出しが行われます。イベント ハンドラー内またはウィンドウの作成後にこれらのプロパティを変更すると、OpenForms の問題が発生する可能性があります。
代替アプローチ
Application.OpenForms に依存する代わりに、次の代替方法を検討してください。
以上がフォームが開いている場合でも、「Application.OpenForms.Count」が時々 0 を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。