我想在窗体中显示一个带有OkDetail按钮的消息框。我已经为该功能做了一些代码,但它还显示了一个取消按钮,并且在详细部分中它仅显示了我以字符串形式编写的消息。代码是

var dialogTypeName = "System.Windows.Forms.PropertyGridInternal.GridErrorDlg";
var dialogType = typeof(M3Form).Assembly.GetType(dialogTypeName);

// Create dialog instance.
var dialog = (M3Form)Activator.CreateInstance(dialogType, new PropertyGrid());


// Populate relevant properties on the dialog instance.
dialog.Text = "Accknowledge Error";
dialogType.GetProperty("Details").SetValue(dialog, "Maximum length has been exceeded. Maximum = 50, Actual =" + txtName.Text.Length + "", null);
dialogType.GetProperty("Message").SetValue(dialog, "Maximum length has been exceeded. Maximum = 50, Actual =" + txtName.Text.Length + "", null);

// Display dialog.
var result = dialog.ShowDialog();


如何在详细信息部分仅显示“确定”按钮和详细信息按钮以及堆栈跟踪错误消息。

最佳答案

如果我理解正确,则希望将MessageBox上的默认OKCancel按钮更改为OKDetails。这需要太多的工作,而且在没有创建自己的MessageBox的情况下也不容易做到。

IMO最好创建一个新的看起来像MessageBox的表格,并在每次需要显示一条消息时显示出来。然后,在显示ShowDialog时可以使用MessageBox Form,这样它是一个类似于MessageBox的模式窗口。

10-05 21:31
查看更多