最近一直用到winform的MessageBox,感觉还是很混乱。刚好在网上发现xuenzhen的博客,特此借鉴记录一些东西。
下面的MessageBox的九中用法,来自xuenzhen的博客:http://blog.csdn.net/xuenzhen123/article/details/4808005。图片没有转载,在VS10中测试通过
一 MessageBox九种用法
1.MessageBox.Show("Hello~~~~");
最简单的,只显示提示信息。
2.MessageBox.Show("There are something wrong!","ERROR");
可以给消息框加上标题。
3.if (MessageBox.Show("Delete this user?", "Confirm Message", MessageBoxButtons.OKCancel) == DialogResult.OK)
{
//delete
}
询问是否删除时会用到这个。
4.if (MessageBox.Show("Delete this user?", "Confirm Message", MessageBoxButtons.OKCancel,MessageBoxIcon.Question) == DialogResult.OK)
{
//delete
}
可以给MessageBox加上一个Icon,.net提供常见的Icon共选择。
5.if (MessageBox.Show("Delete this user?", "Confirm Message", MessageBoxButtons.OKCancel, MessageBoxIcon.Question,MessageBoxDefaultButton.Button2) == DialogResult.OK)
{
//delete
}
可以改变MessageBox的默认焦点,如下:
6.if (MessageBox.Show("Delete this user?", "Confirm Message", MessageBoxButtons.OKCancel, MessageBoxIcon.Question,MessageBoxDefaultButton.Button2,MessageBoxOptions.RtlReading) == DialogResult.OK)
{
//delete
}
反向显示:
7.if (MessageBox.Show("Delete this user?", "Confirm Message", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, MessageBoxOptions.RightAlign,true) == DialogResult.OK)
{
//delete
}
添加Help按钮:
8.if (MessageBox.Show("Delete this user?", "Confirm Message", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading, @"/folder/file.htm") == DialogResult.OK)
{
//delete
}
指定帮助文件的路径,点击即可打开该路径下的帮助文件
9.//HelpNavigator指定常数来指示要显示的帮助文件元素。Find 帮助文件将打开到搜索页。
if (MessageBox.Show("Delete this user?", "Confirm Message", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading, @"/folder/file.htm", HelpNavigator.Find) == DialogResult.OK)
{
//delete
}
二 去掉MessageBox的按钮
MessageBox包含的按钮有的时候感觉不爽,但是又没有办法去掉,只有自己实现一个myMessageBox了。
1)新建一个form窗体,然后调整窗体的大小合适(模仿MessageBox)
2)设置FormBorderStyle 属性,this.FormBorderStyle = system.Windows.Forms.FormBorderStyle.FixedSingle,窗体大小严禁调节
3)将MinimizeBox和MaxmizeBox分别设置为false,隐藏最小化和最大化按钮(具体见Form窗体controlbox按钮处理)
4)然后就是自己设置Icon(MessageBox左上角的图标),form的Text属性设置为Warining等
5)使用label或textbox在适当的位置显示提示文字
自定义的简陋的MessageBox就可以使用了,至于重载方法等后续随意添加即可。
三 其它参考资料
微软官方:http://msdn.microsoft.com/zh-cn/library/system.windows.messagebox.show%28v=vs.100%29.aspx
MessageBox一些参数:http://www.cnblogs.com/txw1958/archive/2012/09/11/csharp-messagebox.html
Form窗体controlbox按钮处理:http://social.microsoft.com/Forums/zh-CN/4e2238a4-c3df-4f1e-9636-3b7b7f7e1cd1/winform
B/S 模仿MessageBox(没测试过,相信作者:)):http://cuijinf.blog.163.com/blog/static/259008482010831007478/