InvalidOperationException 将消息框放在任何项目的任何用户控件中的任何位置

本文关键字:任何 用户 控件 位置 项目 InvalidOperationException 消息 | 更新日期: 2023-09-27 18:32:12

我开始在VS2012 Ultimate中得到一个InvalidOperationException

"调度程序处理已暂停,但邮件仍在处理中。"

。每当我在UserControl代码隐藏中的任何位置调用MessagBox时。这目前似乎会影响我计算机上的每个项目,包括我下载的项目和一个除了 UserControl 本身之外没有实际代码的新项目。然而,这似乎只影响UserControl;标准类和Windows的代码隐藏工作正常。


系统。无效操作发生异常

HResult=-2146233079

消息

=调度程序处理已暂停,但消息仍在处理中。

Source=WindowsBase

堆栈跟踪: at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)

内部异常:


InnerException是空白的,因为根据VS,它是空的。这个问题对任何人都有意义吗?在谷歌搜索之后,我发现了一些抛出此异常的实例,但这些情况都不是这样的。我希望这里的某个人可能对可能导致这种情况的原因有所了解,并且在我求助于重新安装 VS 并希望

最好的之前,可能会帮助我。

关于如何解决此问题的任何想法将不胜感激。


根据Mark Hall的要求:像这样简单的类将导致异常:

public partial class TestView : UserControl
{
    public TestView()
    {
        InitializeComponent();
        System.Windows.MessageBox.Show("Test");
    }
}

InvalidOperationException 将消息框放在任何项目的任何用户控件中的任何位置

Hans Passant 是对的,你真的不应该尝试在构造函数期间显示消息框。 构造函数不仅在运行时调用,而且在设计时调用。

如果您将其用于调试目的,请尝试写入日志文件或 Console.WriteLine(...)。

相关文章: