我正在尝试将我的应用程序与其他几个应用程序集成。在一种情况下,我收到以下异常:
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)
或不运行。
但相反,我想知道是否有一种方法可以验证在执行SetCompatibleTextRenderingDefault(false)
.
如果这是一个愚蠢的问题,我很抱歉,但我之前并没有真正使用过 Winforms。
我将不胜感激您能给我的任何帮助。
更新
在阅读了第一个答案和一些评论后,我想提一下,我遇到这个问题的上下文相当复杂,我在这里无法完全解释。感谢您的反馈,我理解您在说什么。
我认为我添加的上下文误解了我的问题的精神,我知道为什么会发生错误,并且我知道解决它并解决问题的方法。
我只是想知道是否有办法知道是否已经创建了 IWin32Window ?
毕竟,异常正在发生,因为 IWin32Window 已经创建,所以我想知道你怎么知道。
再次感谢。