MessageBox.Show完全不起作用

6
我正在使用C#为Windows Phone 8开发应用程序。我一直在使用MessageBox.Show(),它总是像我想要的那样显示弹出消息,但突然间就不会显示任何东西了。我调试了应用程序,代码正常运行并编译了MessageBox.Show("Something");这一行,但没有弹出窗口!我还尝试将其放在另一个页面中,也不起作用!我只记得昨天我搞乱了项目的引用,但这是问题所在吗?无论如何,这是我的项目引用的照片。

你需要使用 System.Windows 命名空间 - meda
1
通常情况下,如果您缺少引用,它甚至无法编译。由于它已经编译,MessageBox 可能已经不小心指向其他东西了。尝试右键单击 MessageBox 并单击 转到定义,看看它是否将您带到 System.Windows.MessageBox 类或其他地方。 - SF Lee
@SFLee 它带我到了 MessageBox 类。 - GabourX
我的意思是:那个 MessageBox 属于 .NET Framework 的 System.Windows 命名空间/程序集还是其他的? - SF Lee
3个回答

4

当你构建一个 Windows Phone 项目 时,它会自动为你生成所有必需的依赖项。你应该能够在你的 类文件 中添加以下 using 语句:

using System.Windows

一旦您完成了上述步骤,您就可以实现 MessageBox 类。如果没有,则需要执行以下操作:
  1. 打开解决方案资源管理器
  2. 右键单击引用文件夹
  3. 添加 引用
  4. 转到程序集
  5. 转到浏览
  6. 导航至:C:\Windows\Microsoft.Net\Assembly\GAC_MSIL\PresentationFramework
  7. 引用 PresentationFramework.dll
引用该库后,您将能够调用:MessageBox.Show(@"Something");而不会出现任何问题。

打开对象浏览器,在其中找到了 System.Windows,也找到了 MessageBox 类。 - GabourX
但是,你的图片中的窗口在我的电脑上没有显示任何汇编代码。 - GabourX
2012 Express for Windows Phone - GabourX
我告诉过你,它的目标是:Windows Phone 8.0。 - GabourX
1
你不能为Windows Phone 8应用程序添加框架程序集。所有框架程序集已经隐式地在Windows Phone 8解决方案中引用。 - AMS
显示剩余3条评论

1

问题已解决!

1.) 重新启动了电脑

2.) 从手机中删除了该应用程序

3.) 调试


1
沿着这条线,我最终只是重新启动了我的手机,然后它又开始工作了。显然,这是一个Windows Phone 8.1的bug,而不是运行到这个问题的应用程序的问题。 - GusP

0

我遇到了MessageBox.Show()无法工作的问题。

这发生在两个不同的软件上:Kaxaml和Troelsen C#书中的一个示例。

我通过在代码的不同位置使用简单的字符串而不是“Exception”委托来排除故障,这有助于告诉我我是否有正确的引用。显然,如果MessageBox在代码的任何地方都能正常工作,那么这告诉我我有正确的引用。

基本上,发生的情况是Visual Studio调试器会在catch-try块之前触发,从而防止MessageBox出现。当我使用发布版本时,也没有MessageBox。

解决方法是关闭Visual Studio上的一个小复选框,类似于“不显示此异常”。有点奇怪的是,即使它在catch-try块中,Visual Studio仍然会触发异常错误,但无论如何,这对我有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接