【问题标题】:C# Custom Exception Title in MessageBoxMessageBox 中的 C# 自定义异常标题
【发布时间】:2016-02-22 01:42:53
【问题描述】:

标题有点混乱,所以希望我能在这里更好地解释一下。如果出现错误,我想更改屏幕上弹出的 MessageBox 的标题,因为默认消息非常冗长,我希望对用户可以理解的错误给出更好的解释。

private void Load_Click(object sender, RoutedEventArgs e)
    {
        if (comboBox.SelectedItem.ToString() == "Department Staff")
        {
            try
            {
                DataTable dt = dataSource.DataTableQuery("SELECT * FROM DepartmentStaff");
                dataGrid.ItemsSource = dt.DefaultView;
            }
            catch (NullReferenceException ex)
            {
                MessageBox.Show("Unable To Connect To Database, Please Try Again Later.", ex.ToString());
            }

        }
        else
        {
            try
            {
                DataTable dt = dataSource.DataTableQuery("SELECT * FROM Department");
                dataGrid.ItemsSource = dt.DefaultView;
            }
            catch (NullReferenceException ex)
            {
                MessageBox.Show("Unable To Connect To Database, Please Try Again Later.", ex.ToString());
            }

        }

【问题讨论】:

  • 这需要我创建一个自定义异常吗?
  • 你的问题是什么?
  • 这是 Winforms 吗? WPF? ASP.Net?
  • 我不明白这个问题。 具体是什么你的困难?您已经调用了允许您指定标题的MessageBox.Show() 重载。只需指定您想要的标题,而不是整个异常 ToString() 结果。你有什么问题?
  • 我相信,他的意思是他有一个很长的caption(他称之为title

标签: c# wpf exception messagebox


【解决方案1】:

更仔细地查看Message.Show() 参数:

Message.Show(text, caption); //the first one is text, the second one is caption.

第二个参数是标题(或标题),而第一个是消息。现在在您的使用中,您将异常消息(通常很长)作为标题,这就是为什么您会得到一个“非常冗长” 标题(不是消息)。

MessageBox.Show("Unable To Connect To Database, Please Try Again Later.", ex.ToString());

不要那样做!相反,这样做:

MessageBox.Show("Unable To Connect To Database, Please Try Again Later. " +  ex.ToString(), "Error");

只需将“错误”作为标题参数。

【讨论】:

  • @BenParry 欢迎您。希望您可以使用MessageBox.Show 取得良好进展。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-09
  • 1970-01-01
  • 2013-10-13
  • 1970-01-01
  • 1970-01-01
  • 2021-08-24
  • 2017-04-11
相关资源
最近更新 更多