zoukankan      html  css  js  c++  java
  • Winform开发框架之对话框样式同化

    早在《Winform分页控件重大更新,并实现普通版、DotNetBar、DevExpress三大版本整合更新(附各种例子源码)》随笔中,就集成了三种界面样式的分页控件(普通版、基于DotNetBar样式和基于DevExpress样式三种),后来也就形成了我三种不同的Winform开发框架界面样式。

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

     

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

     

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

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

     

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

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

        public class MessageUtil
        {
            /// <summary>
            
    /// 显示一般的提示信息
            
    /// </summary>
            
    /// <param name="message">提示信息</param>
            public static DialogResult ShowTips(string message)
            {
                return MessageBox.Show(message, "提示信息",MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            /// <summary>
            
    /// 显示警告信息
            
    /// </summary>
            
    /// <param name="message">警告信息</param>
            public static DialogResult ShowWarning(string message)
            {
                return MessageBox.Show(message, "警告信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }

            /// <summary>
            
    /// 显示错误信息
            
    /// </summary>
            
    /// <param name="message">错误信息</param>
            public static DialogResult ShowError(string message)
            {
                return MessageBox.Show(message, "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            /// <summary>
            
    /// 显示询问用户信息,并显示错误标志
            
    /// </summary>
            
    /// <param name="message">错误信息</param>
            public static DialogResult ShowYesNoAndError(string message)
            {
                return MessageBox.Show(message, "错误信息", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
            }

            /// <summary>
            
    /// 显示询问用户信息,并显示提示标志
            
    /// </summary>
            
    /// <param name="message">错误信息</param>
            public static DialogResult ShowYesNoAndTips(string message)
            {
                return MessageBox.Show(message, "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
            }

            /// <summary>
            
    /// 显示询问用户信息,并显示警告标志
            
    /// </summary>
            
    /// <param name="message">警告信息</param>
            public static DialogResult ShowYesNoAndWarning(string message)
            {
                return MessageBox.Show(message, "警告信息", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            }

            /// <summary>
            
    /// 显示询问用户信息,并显示提示标志
            
    /// </summary>
            
    /// <param name="message">错误信息</param>
            public static DialogResult ShowYesNoCancelAndTips(string message)
            {
                return MessageBox.Show(message, "提示信息", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information);
            }

            /// <summary>
            
    /// 显示一个YesNo选择对话框
            
    /// </summary>
            
    /// <param name="prompt">对话框的选择内容提示信息</param>
            
    /// <returns>如果选择Yes则返回true,否则返回false</returns>
            public static bool ConfirmYesNo(string prompt)
            {
                return MessageBox.Show(prompt, "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes;
            }

            /// <summary>
            
    /// 显示一个YesNoCancel选择对话框
            
    /// </summary>
            
    /// <param name="prompt">对话框的选择内容提示信息</param>
            
    /// <returns>返回选择结果的的DialogResult值</returns>
            public static DialogResult ConfirmYesNoCancel(string prompt)
            {
                return MessageBox.Show(prompt, "确认", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
            }
        } 

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

        public class MessageExUtil
        {
            /// <summary>
            
    /// 显示一般的提示信息
            
    /// </summary>
            
    /// <param name="message">提示信息</param>
            public static DialogResult ShowTips(string message)
            {
                return MessageBoxEx.Show(message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            /// <summary>
            
    /// 显示警告信息
            
    /// </summary>
            
    /// <param name="message">警告信息</param>
            public static DialogResult ShowWarning(string message)
            {
                return MessageBoxEx.Show(message, "警告信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }

            /// <summary>
            
    /// 显示错误信息
            
    /// </summary>
            
    /// <param name="message">错误信息</param>
            public static DialogResult ShowError(string message)
            {
                return MessageBoxEx.Show(message, "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            /// <summary>
            
    /// 显示询问用户信息,并显示错误标志
            
    /// </summary>
            
    /// <param name="message">错误信息</param>
            public static DialogResult ShowYesNoAndError(string message)
            {
                return MessageBoxEx.Show(message, "错误信息", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
            }

            /// <summary>
            
    /// 显示询问用户信息,并显示提示标志
            
    /// </summary>
            
    /// <param name="message">错误信息</param>
            public static DialogResult ShowYesNoAndTips(string message)
            {
                return MessageBoxEx.Show(message, "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
            }

            /// <summary>
            
    /// 显示询问用户信息,并显示警告标志
            
    /// </summary>
            
    /// <param name="message">警告信息</param>
            public static DialogResult ShowYesNoAndWarning(string message)
            {
                return MessageBoxEx.Show(message, "警告信息", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            }

            /// <summary>
            
    /// 显示询问用户信息,并显示提示标志
            
    /// </summary>
            
    /// <param name="message">错误信息</param>
            public static DialogResult ShowYesNoCancelAndTips(string message)
            {
                return MessageBoxEx.Show(message, "提示信息", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information);
            }
       } 

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

        public class MessageDxUtil
        {
            /// <summary>
            
    /// 显示一般的提示信息
            
    /// </summary>
            
    /// <param name="message">提示信息</param>
            public static DialogResult ShowTips(string message)
            {
                return DevExpress.XtraEditors.XtraMessageBox.Show(message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            /// <summary>
            
    /// 显示警告信息
            
    /// </summary>
            
    /// <param name="message">警告信息</param>
            public static DialogResult ShowWarning(string message)
            {
                return DevExpress.XtraEditors.XtraMessageBox.Show(message, "警告信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }

            /// <summary>
            
    /// 显示错误信息
            
    /// </summary>
            
    /// <param name="message">错误信息</param>
            public static DialogResult ShowError(string message)
            {
                return DevExpress.XtraEditors.XtraMessageBox.Show(message, "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            /// <summary>
            
    /// 显示询问用户信息,并显示错误标志
            
    /// </summary>
            
    /// <param name="message">错误信息</param>
            public static DialogResult ShowYesNoAndError(string message)
            {
                return DevExpress.XtraEditors.XtraMessageBox.Show(message, "错误信息", MessageBoxButtons.YesNo, MessageBoxIcon.Error);
            }

            /// <summary>
            
    /// 显示询问用户信息,并显示提示标志
            
    /// </summary>
            
    /// <param name="message">错误信息</param>
            public static DialogResult ShowYesNoAndTips(string message)
            {
                return DevExpress.XtraEditors.XtraMessageBox.Show(message, "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
            }

            /// <summary>
            
    /// 显示询问用户信息,并显示警告标志
            
    /// </summary>
            
    /// <param name="message">警告信息</param>
            public static DialogResult ShowYesNoAndWarning(string message)
            {
                return DevExpress.XtraEditors.XtraMessageBox.Show(message, "警告信息", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            }

            /// <summary>
            
    /// 显示询问用户信息,并显示提示标志
            
    /// </summary>
            
    /// <param name="message">错误信息</param>
            public static DialogResult ShowYesNoCancelAndTips(string message)
            {
                return DevExpress.XtraEditors.XtraMessageBox.Show(message, "提示信息", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information);
            }
        } 


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

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

    主要研究技术:代码生成工具、会员管理系统、客户关系管理软件、病人资料管理软件、Visio二次开发、酒店管理系统、仓库管理系统等共享软件开发
    专注于Winform开发框架/混合式开发框架Web开发框架Bootstrap开发框架微信门户开发框架的研究及应用
      转载请注明出处:
    撰写人:伍华聪  http://www.iqidi.com 
        
  • 相关阅读:
    java语言基础
    常用4种限流算法介绍及比较
    如何用Redis实现分布式锁
    翻转字符串
    JAVA之io流
    JAVA之Collections集合
    【转】IT行业岗位以及发展方向
    JAVA之字符串
    JAVA之数组
    Linux之判断字符串是否为空
  • 原文地址:https://www.cnblogs.com/wuhuacong/p/2259128.html
Copyright © 2011-2022 走看看