【问题标题】:Hidden message box and giving an error on it隐藏消息框并给出错误
【发布时间】:2011-07-07 10:14:00
【问题描述】:

我正在调试一个程序并使用 System.Windows.Messagebox.show("Message"); 我成功调试了它,并删除了我创建的所有消息。 当我尝试运行它时,其中一个消息框仍然可见,当单击确定时,现在一直存在相同的错误,我无法摆脱它。 这是它停止的方法

 OpenFileDialog fileDialog = new OpenFileDialog();
 fileDialog.Filter = "CSV Files|*.csv";
 fileDialog.Multiselect = false;
 fileDialog.Title = "Load CSV file";

 List<List<string>> listOfPreview = new List<List<string>>();

 **if (fileDialog.ShowDialog().Value)** this is the line of the error
   {
      listOfPreview = viewModel.ImportPreviewCsv(fileDialog.FileName, ',');
   }

错误是:

InvalidOperationException 未处理。

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

现在,当我尝试执行 CTRL+F 来查找消息框时,我无法在任何地方找到它。我的程序仍然无法正常工作。请帮忙。

【问题讨论】:

  • 您是否在线程上运行此代码?这是不合法的,OpenFileDialog 必须显示在 UI 线程上。

标签: c# debugging error-handling


【解决方案1】:

你处理 ShowDialog 的方式不对,

你应该替换:

**if (fileDialog.ShowDialog().Value)**

与:

if (fileDialog.ShowDialog() != DialogResult.Cancel)

【讨论】:

  • 因为它在 wpf 中?因为正如你告诉我的那样不起作用
【解决方案2】:

在 Visual Studio 中按 F5 以调试模式运行您的程序。当 MessageBox 出现时,点击 Visual Studio 工具栏上的“暂停”按钮。暂停按钮看起来像这样 '||'

现在看到调用堆栈窗口。您将能够找到 MessageBox 的显示位置。

【讨论】:

  • 它的意思是:当前位置没有可用的源代码。但它是从某个地方调用的。
【解决方案3】:

试试这个代码

OpenFileDialog fileDialog = new OpenFileDialog();
fileDialog.Filter = "CSV Files|*.csv";
fileDialog.Multiselect = false;
fileDialog.Title = "Load CSV file";

List<List<string>> listOfPreview = new List<List<string>>();

if (fileDialog.ShowDialog()!= DialogResult.Cancel)
{
    listOfPreview = viewModel.ImportPreviewCsv(fileDialog.FileName, ',');
}

OpenFileDialog fileDialog = new OpenFileDialog();
fileDialog.Filter = "CSV Files|*.csv";
fileDialog.Multiselect = false;
fileDialog.Title = "Load CSV file";

List<List<string>> listOfPreview = new List<List<string>>();

if (fileDialog.ShowDialog()!= DialogResult.Ok)
{
    listOfPreview = viewModel.ImportPreviewCsv(fileDialog.FileName, ',');
}

【讨论】:

  • 好的,这样它工作了,但消息框仍然显示,错误仍然显示,程序仍然崩溃
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-15
相关资源
最近更新 更多