Winform开发框架之同化对话框样式

开发 后端
本文将谈到Winform开发框架中的同化对话框样式,三个不同的对话框封装类,专门为不同的Winform界面样式服务,接口一样,返回的对话框结果一样。

  早在《》随笔中,就集成了三种界面样式的分页控件,后来也就形成了我三种不同的Winform开发框架界面样式。

  1)基于传统经典模式的界面,采用了OutLookBar工具条以及鼎鼎有名的Weifengluo多文档布局控件,集成了分页控件、使用基于Apose.Cell控件的自定义报表等功能,能适应大多数业务系统的引用。框架数据编辑界面、普通查询窗体界面均采用窗体集成模式,简化开发代码,提高窗体开发效率以及统一界面的一致性。

  2)在基于传统经典模式的Winform框架基础上,引入DotNetBar优秀的界面组件,对界面的样式,布局均由很大程度的提升。工具栏统一集中放置在Ribbon工具条上,可以折叠分组等,另外也支持多文档的界面操作,非常方便和美观。

  3)基于DevExpress界面设计也在基于传统经典模式的Winform框架基础上,引入DotNet最为优秀的界面组件DevExpress,对界面布局、样式等模块提升到一个极高的高度,同时提供该样式的分页控件,使得整合更加***。

  介绍三种框架的布局及大致样式后,言归正传,介绍在Winform开发中,经常用到的对话框操作的封装,一般的对话框操作,包括有各种不同的方式,传统方式如下所示。

  以上图片是Win7的效果,XP或者2000下基本上是灰头土脸的效果,如果但在不同的界面样式中,就不能一直用MessageBox.Show这个方法了,因为不同的界面样式提供了不同的对话框封装操作。下面分别介绍基于传统方式、基于DotNetBar界面控件方式、基于DevExpress界面样式方式,三种方式的对话框处理封装类。

  1)、传统方式的对话框处理封装类代码如下

  1.   public class MessageUtil  
  2.   {  
  3.   /// <summary> /// 显示一般的提示信息  
  4.   /// </summary> /// <param name="message">提示信息</param>  
  5.   public static DialogResult ShowTips(string message)  
  6.   {  
  7.   return MessageBox.Show(message, "提示信息",MessageBoxButtons.OK, MessageBoxIcon.Information);  
  8.   }  
  9.   /// <summary> /// 显示警告信息  
  10.   /// </summary> /// <param name="message">警告信息</param>  
  11.   public static DialogResult ShowWarning(string message)  
  12.   {  
  13.   return MessageBox.Show(message, "警告信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);  
  14.   }  
  15.   /// <summary> /// 显示错误信息  
  16.   /// </summary> /// <param name="message">错误信息</param>  
  17.   public static DialogResult ShowError(string message)  
  18.   {  
  19.   return MessageBox.Show(message, "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Error);  
  20.   }  
  21.   /// <summary> /// 显示询问用户信息,并显示错误标志  
  22.   /// </summary> /// <param name="message">错误信息</param>  
  23.   public static DialogResult ShowYesNoAndError(string message)  
  24.   {  
  25.   return MessageBox.Show(message, "错误信息", MessageBoxButtons.YesNo, MessageBoxIcon.Error);  
  26.   }  
  27.   /// <summary> /// 显示询问用户信息,并显示提示标志  
  28.   /// </summary> /// <param name="message">错误信息</param>  
  29.   public static DialogResult ShowYesNoAndTips(string message)  
  30.   {  
  31.   return MessageBox.Show(message, "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information);  
  32.   }  
  33.   /// <summary> /// 显示询问用户信息,并显示警告标志  
  34.   /// </summary> /// <param name="message">警告信息</param>  
  35.   public static DialogResult ShowYesNoAndWarning(string message)  
  36.   {  
  37.   return MessageBox.Show(message, "警告信息", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);  
  38.   }  
  39.   /// <summary> /// 显示询问用户信息,并显示提示标志  
  40.   /// </summary> /// <param name="message">错误信息</param>  
  41.   public static DialogResult ShowYesNoCancelAndTips(string message)  
  42.   {  
  43.   return MessageBox.Show(message, "提示信息", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information);  
  44.   }  
  45.   /// <summary> /// 显示一个YesNo选择对话框  
  46.   /// </summary> /// <param name="prompt">对话框的选择内容提示信息</param> /// <returns>如果选择Yes则返回true,否则返回false</returns>  
  47.   public static bool ConfirmYesNo(string prompt)  
  48.   {  
  49.   return MessageBox.Show(prompt, "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes;  
  50.   }  
  51.   /// <summary> /// 显示一个YesNoCancel选择对话框  
  52.   /// </summary> /// <param name="prompt">对话框的选择内容提示信息</param> /// <returns>返回选择结果的的DialogResult值</returns>  
  53.   public static DialogResult ConfirmYesNoCancel(string prompt)  
  54.   {  
  55.   return MessageBox.Show(prompt, "确认", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);  
  56.   }  
  57.   } 

  2 )DotNetBar样式中对话框处理封装类如下所示

  1.   public class MessageExUtil  
  2.   {  
  3.   /// <summary> /// 显示一般的提示信息  
  4.   /// </summary> /// <param name="message">提示信息</param>  
  5.   public static DialogResult ShowTips(string message)  
  6.   {  
  7.   return MessageBoxEx.Show(message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);  
  8.   }  
  9.   /// <summary> /// 显示警告信息  
  10.   /// </summary> /// <param name="message">警告信息</param>  
  11.   public static DialogResult ShowWarning(string message)  
  12.   {  
  13.   return MessageBoxEx.Show(message, "警告信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);  
  14.   }  
  15.   /// <summary> /// 显示错误信息  
  16.   /// </summary> /// <param name="message">错误信息</param>  
  17.   public static DialogResult ShowError(string message)  
  18.   {  
  19.   return MessageBoxEx.Show(message, "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Error);  
  20.   }  
  21.   /// <summary> /// 显示询问用户信息,并显示错误标志  
  22.   /// </summary> /// <param name="message">错误信息</param>  
  23.   public static DialogResult ShowYesNoAndError(string message)  
  24.   {  
  25.   return MessageBoxEx.Show(message, "错误信息", MessageBoxButtons.YesNo, MessageBoxIcon.Error);  
  26.   }  
  27.   /// <summary> /// 显示询问用户信息,并显示提示标志  
  28.   /// </summary> /// <param name="message">错误信息</param>  
  29.   public static DialogResult ShowYesNoAndTips(string message)  
  30.   {  
  31.   return MessageBoxEx.Show(message, "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information);  
  32.   }  
  33.   /// <summary> /// 显示询问用户信息,并显示警告标志  
  34.   /// </summary> /// <param name="message">警告信息</param>  
  35.   public static DialogResult ShowYesNoAndWarning(string message)  
  36.   {  
  37.   return MessageBoxEx.Show(message, "警告信息", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);  
  38.   }  
  39.   /// <summary> /// 显示询问用户信息,并显示提示标志  
  40.   /// </summary> /// <param name="message">错误信息</param>  
  41.   public static DialogResult ShowYesNoCancelAndTips(string message)  
  42.   {  
  43.   return MessageBoxEx.Show(message, "提示信息", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information);  
  44.   }  
  45.   } 

  3)DevExpress样式中对话框处理封装类如下所示

  1.   public class MessageDxUtil  
  2.   {  
  3.   /// <summary> /// 显示一般的提示信息  
  4.   /// </summary> /// <param name="message">提示信息</param>  
  5.   public static DialogResult ShowTips(string message)  
  6.   {  
  7.   return DevExpress.XtraEditors.XtraMessageBox.Show(message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);  
  8.   }  
  9.  /// <summary> /// 显示警告信息  
  10.   /// </summary> /// <param name="message">警告信息</param>  
  11.   public static DialogResult ShowWarning(string message)  
  12.   {  
  13.   return DevExpress.XtraEditors.XtraMessageBox.Show(message, "警告信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);  
  14.   }  
  15.   /// <summary> /// 显示错误信息  
  16.   /// </summary> /// <param name="message">错误信息</param>  
  17.   public static DialogResult ShowError(string message)  
  18.   {  
  19.   return DevExpress.XtraEditors.XtraMessageBox.Show(message, "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Error);  
  20.   }  
  21.   /// <summary> /// 显示询问用户信息,并显示错误标志  
  22.   /// </summary> /// <param name="message">错误信息</param>  
  23.   public static DialogResult ShowYesNoAndError(string message)  
  24.   {  
  25.   return DevExpress.XtraEditors.XtraMessageBox.Show(message, "错误信息", MessageBoxButtons.YesNo, MessageBoxIcon.Error);  
  26.   }  
  27.   /// <summary> /// 显示询问用户信息,并显示提示标志  
  28.   /// </summary> /// <param name="message">错误信息</param>  
  29.   public static DialogResult ShowYesNoAndTips(string message)  
  30.   {  
  31.   return DevExpress.XtraEditors.XtraMessageBox.Show(message, "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information);  
  32.   }  
  33.   /// <summary> /// 显示询问用户信息,并显示警告标志  
  34.   /// </summary> /// <param name="message">警告信息</param>  
  35.   public static DialogResult ShowYesNoAndWarning(string message)  
  36.   {  
  37.   return DevExpress.XtraEditors.XtraMessageBox.Show(message, "警告信息", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);  
  38.   }  
  39.   /// <summary> /// 显示询问用户信息,并显示提示标志  
  40.   /// </summary> /// <param name="message">错误信息</param>  
  41.   public static DialogResult ShowYesNoCancelAndTips(string message)  
  42.   {  
  43.   return DevExpress.XtraEditors.XtraMessageBox.Show(message, "提示信息", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information);  
  44.   }  
  45.   } 

  三个不同的对话框封装类,专门为不同的Winform界面样式服务,接口一样,返回的对话框结果一样,简化了对这些常用的操作封装的同时,也使得界面的整体性达到更一致,用户体验更好,否则在漂亮的DevExpress界面效果中,突然弹出一个灰头土脸的对话框提示信息,甚是大煞风景,给使用者不好的印象。

  以上是我在我的三种界面样式的Winform开发框架中常用到的类,希望对大家有所帮助,并能在具体的项目中应用,有时间就推荐一下,在此感谢大家支持。

原文链接:http://www.cnblogs.com/cbcye/archive/2012/01/08/2316514.html

【编辑推荐】

  1. WPF调用Winform控件具体技巧分享
  2. Winform框架之字典数据管理
  3. 详解Winform多线程编程基本原理
  4. 详解WinForm窗体间交互的方法
  5. WPF与WinForm对比谈 多线程编程优化是关键
责任编辑:彭凡 来源: 博客园
相关推荐

2011-07-01 11:33:00

Qt 模态 非模态

2010-01-11 09:33:32

VB.NET对话框调用

2012-12-03 10:47:54

WebJQuery控件

2010-08-05 10:42:41

Android开发Android高级编程

2010-01-28 16:55:26

Android对话框

2011-07-21 15:50:42

jQuery Mobi页面对话框

2009-12-28 14:32:31

WPF窗体对话框

2009-12-28 13:47:35

WPF对话框

2009-12-11 15:35:50

PHP弹出对话框

2012-08-21 11:26:17

Winform

2011-05-20 16:49:21

VB.NET

2013-12-27 14:10:36

Android开发Android应用Transform

2011-07-22 15:32:53

iPhone 按钮 对话框

2021-01-28 14:34:35

鸿蒙HarmonyOS应用开发

2013-04-23 09:31:12

Winform开发框架

2009-12-29 15:24:48

WPF对话框

2012-12-11 10:15:02

Winform开发框架

2009-09-03 17:44:22

iPhone程序开发

2011-06-02 10:37:02

Android 对话框

2010-01-22 16:27:19

VB.NET关于对话框
点赞
收藏

51CTO技术栈公众号