アプリケーションを他のいくつかと統合しようとしています。あるケースでは、次の例外が発生しています。
System.InvalidOperationException was unhandled by user code
Message=SetCompatibleTextRenderingDefault must be called before the first IWin32Window object is created in the application.
この例外は、私がやろうとしているためです:
System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false);
また、統合しようとしているアプリケーションは、すでにいくつかの IWin32Window を作成しています。
私は周りを検索しましたSetCompatibleTextRenderingDefault(false)
が、すでにIWin32Windowがある場合は基本的に試してはいけません。しかし、私のアプリケーションは他のさまざまなアプリケーションに統合されるため、それぞれのケースで条件が変わります。
今のところ、パラメーターを受け取るようにアプリケーションを変更することを計画しているので、コンテキストに応じて実行するSetCompatibleTextRenderingDefault(false)
かどうかを決めることができます。
しかし、代わりに、実行する前に IWin32Window が既に作成されているかどうかを確認できる方法があるかどうかを知りたいですSetCompatibleTextRenderingDefault(false)
。
これが愚かな質問である場合は申し訳ありませんが、これまで Winforms をあまり扱ったことがありません。
あなたが私に与えることができる助けをいただければ幸いです。
アップデート
最初の回答といくつかのコメントを読んだ後、この問題が発生しているコンテキストはかなり複雑であり、ここで完全に説明することはできません. 私はフィードバックに感謝し、あなたが言っていることを理解しています.
私の質問の精神は、私が追加したコンテキストによって誤解されたと思います.エラーが発生している理由を知っており、それを解決して回避する方法を知っています.
IWin32Window が既に作成されているかどうかを知る方法があるかどうか知りたいのですが?
結局、IWin32Window が既に作成されているために例外が発生しているので、どうすればそれを知ることができるのだろうと思っていました。
再度、感謝します。