刚才我注意到,当属性被设置为无效值时,Visual Studio会显示一个消息框,其中包含详细信息。例如:
是否可以在WinForms中创建此类型的消息框?
我已经尝试了以下代码:
MessageBox.Show("Error in Division Fill.\n" + ex.Message,
"Information",
MessageBoxButtons.OK,
MessageBoxIcon.Information,
MessageBoxOptions.RightAlign);
但这会产生以下错误:
错误24 'System.Windows.Forms.MessageBox.Show(string,string,System.Windows.Forms.MessageBoxButtons,System.Windows.Forms.MessageBoxIcon,string)的最佳重载方法匹配包含一些无效参数
G:\Jagadeeswaran\11月17日\ MCS-SPS学校\MCS-SPS School\Certificate\Transfer.cs 164 21 MCS-SPS学校
如何修复此错误并获得显示其他详细信息的消息框?
发布于 2011-12-28 16:55:59
正如其他人所指出的,您应该编写一个具有所需功能的自定义对话框。有关这方面的帮助,您可以查看PropertyGrid
在此对话框中使用的实际实现(可能使用反编译器),从.NET 4.0开始,它是System.Windows.Forms
程序集内部的System.Windows.Forms.PropertyGridInternal.GridErrorDlg
类型。
我真的不推荐它(可能会在未来的版本中被打破),但是如果你真的感到懒惰,你可以使用反射直接使用这个内部类型。
// Get reference to the dialog type.
var dialogTypeName = "System.Windows.Forms.PropertyGridInternal.GridErrorDlg";
var dialogType = typeof(Form).Assembly.GetType(dialogTypeName);
// Create dialog instance.
var dialog = (Form)Activator.CreateInstance(dialogType, new PropertyGrid());
// Populate relevant properties on the dialog instance.
dialog.Text = "Sample Title";
dialogType.GetProperty("Details").SetValue(dialog, "Sample Details", null);
dialogType.GetProperty("Message").SetValue(dialog, "Sample Message", null);
// Display dialog.
var result = dialog.ShowDialog();
结果
发布于 2011-12-28 16:28:13
要创建自定义对话框/消息窗口,您需要设置Form的以下属性。
现在,使用ShowDialog()方法显示自定义对话框。
MyDialog dialog=new MyDialog();
DialogResult result=dialog.ShowDialog();
if(result == DialogResult.OK)
{
//
}
有关对话框的更多信息,请阅读MSDN文章- Dialog Boxes (Visual C#)
发布于 2011-12-28 16:33:07
只需编写您自己的对话框,就不会像您想要显示方法那样重载。
https://stackoverflow.com/questions/8653430
复制相似问题