c# – 将Messagebox放在任何项目的任何UserControl中的任何位置
我已经开始在VS2012 Ultimate中获得InvalidOperationException了:
“调度程序处理已暂停,但邮件仍在处理中.” …每当我在UserControl的代码隐藏中的任何地方调用MessagBox时.这当前似乎会影响我的计算机上的每个项目,包括我下载的项目以及除UserControl本身之外没有真正代码的新项目.但这似乎只影响UserControls;标准类和Windows的代码隐藏工作正常. 发生System.InvalidOperationException 的HResult = -2146233079 Message = Dispatcher处理已暂停,但仍在处理消息. 来源= WindowsBase 堆栈跟踪: 的InnerException: InnerException是空白的,因为根据VS,它是null.这个问题对任何人都有意义吗?在Google搜索之后,我发现了一些抛出此异常的实例,但这些情况都不是这样的.我希望这里的某些人可能对可能导致这种情况的一些知识有所了解,并且可能能够在我尝试重新安装VS并希望获得最佳效果之前帮助我. 任何关于如何解决这个问题的想法都将非常感激. Per Mark Hall的要求:像这样简单的类会导致异常: public partial class TestView : UserControl { public TestView() { InitializeComponent(); System.Windows.MessageBox.Show("Test"); } } 解决方法
Hans Passant是对的,你真的不应该尝试在构造函数中显示一个消息框.构造函数不仅在运行时被调用,而且在设计时也被调用.
如果您将其用于调试目的,请尝试写入日志文件或Console.WriteLine(…). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |