【问题标题】:MessageBox.Show() does not work outside debugMessageBox.Show() 在调试之外不起作用
【发布时间】:2018-08-15 01:20:44
【问题描述】:

我是 C# 和 Visual Studio 的新手。我编写了一个简单的表单应用程序,在调试时效果很好。当我构建并运行 exe 时,一切正常,除了 MessageBox.Show() 没有弹出任何消息。所以我用一个表单、一个按钮和一个事件处理程序构建了一个新项目。

果然。使用 Start With Debugging 时会弹出消息框。

当我使用 Start without Debugging 单击按钮时没有任何反应。

一些研究指出:

[ComVisibleAttribute(true)]
public enum UIPermissionWindow { AllWindows }

我添加了它,但仍然没有从任何消息框中弹出。 该项目尽可能地用于故障排除。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

[ComVisibleAttribute(true)]
public enum UIPermissionWindow { AllWindows }

namespace Form462
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e) => MessageBox.Show("Help!");
    }
}

【问题讨论】:

  • 您使用的是哪个环境?视觉工作室 2017?如果手动执行Debug文件夹下的.exe文件,是否有效?
  • 当我从 Debug 文件夹运行 exe 时。表单会加载,但是当您单击按钮时,不会出现任何消​​息框。在 VS 中通过调试运行它,单击按钮会按预期弹出窗口。
  • 我看到了,1 条消息。消息 IDE1006 命名规则违规:这些单词必须以大写字符开头:button1_Click
  • 将其更改为 => Close(); 并检查表单是否关闭。如果是这样,那么问题出在消息框上。如果没有,它甚至不会调用您的方法。但我想不出那个弹出窗口不显示的原因。你有多显示器设置吗?
  • 我想知道它是否弹出屏幕

标签: c# visual-studio


【解决方案1】:

Windows 损坏显然是罪魁祸首。 MessageBox.Show() 在另一台服务器上工作正常。 此服务器上的另一件奇怪的事情,似乎无法在 Visual Studio 中打开对话框。 文件 --> 打开 ---> 新建项目解决方案。

什么都没有发生。我看到左下方闪烁的小就绪图标,没有其他反应。我没有 Visual Studio 或 Windows 的更新。

【讨论】:

  • 哦。您可以尝试重新安装 Visual Studio 吗?以防万一,还要在您的驱动器上运行chkdsk。您也可以尝试在具有管理员权限的 CMD 窗口中运行 sfc /scannow 以查找可能损坏的系统文件。
  • 我做得更好。核对虚拟机。做了一个新的虚拟机。我发现这种 Windows 损坏可不好玩。
  • 项目快完成了。再次感谢所有抽出时间回答问题的人。所以。规则。
猜你喜欢
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2012-11-19
  • 1970-01-01
  • 1970-01-01
  • 2013-03-17
  • 2016-06-23
相关资源
最近更新 更多