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开发框架之对话框样式同化,如需转载请自行联系原博主。



目录
相关文章
|
Linux Shell
如何在 Linux 中永久设置 $PATH,用于定义系统在执行命令时搜索可执行文件的路径
如何在 Linux 中永久设置 $PATH,用于定义系统在执行命令时搜索可执行文件的路径
267 0
如何在 Linux 中永久设置 $PATH,用于定义系统在执行命令时搜索可执行文件的路径
|
NoSQL Redis
Redis 之 WRONGTYPE Operation against a key holding the wrong kind of value【bug解决】
Redis 之 WRONGTYPE Operation against a key holding the wrong kind of value【bug解决】
11295 0
|
11月前
|
SQL 数据采集 分布式计算
【赵渝强老师】基于大数据组件的平台架构
本文介绍了大数据平台的总体架构及各层的功能。大数据平台架构分为五层:数据源层、数据采集层、大数据平台层、数据仓库层和应用层。其中,大数据平台层为核心,负责数据的存储和计算,支持离线和实时数据处理。数据仓库层则基于大数据平台构建数据模型,应用层则利用这些模型实现具体的应用场景。文中还提供了Lambda和Kappa架构的视频讲解。
905 3
【赵渝强老师】基于大数据组件的平台架构
|
存储 SQL 关系型数据库
MySQL 大表拆分
【9月更文挑战第13天】在 MySQL 中,为解决大数据量导致的性能问题,常采用表拆分策略,主要包括水平拆分和垂直拆分。水平拆分按规则将大表拆成多个小表,如范围划分(按时间或 ID)和哈希划分(按字段哈希值)。垂直拆分则按字段相关性拆分,减少表宽度。拆分需注意数据迁移、应用改造、索引优化及分布式事务处理等问题。实施前应充分评估和测试。
1008 8
|
Linux 网络虚拟化 Docker
掌握Linux虚拟网络设备:从基础到应用的全面指南
在现代计算环境中,尤其是云计算☁️、容器化📦和微服务架构🏗️大行其道的时代,了解和掌握Linux虚拟网络设备变得极为重要。本文将深入探讨Linux虚拟网络设备的世界,带你了解它们是什么、包含哪些类型、为什么需要它们,以及如何在应用开发中充分利用它们。
掌握Linux虚拟网络设备:从基础到应用的全面指南
|
安全 Swift iOS开发
探索iOS开发中的Swift语言之美
在数字时代的浪潮中,移动应用已成为日常生活的延伸。本文将深入探讨iOS平台上的Swift编程语言,揭示其背后的设计哲学、语法特性以及如何利用Swift进行高效开发。我们将通过实际代码示例,展示Swift语言的强大功能和优雅简洁的编程风格,引导读者理解并运用Swift解决实际问题。
|
SQL XML Java
Mybatis的<where>,<if>等标签用法
这篇文章详细解释了Mybatis中<where>和<if>等标签的用法,展示了如何在SQL动态构建中有效地过滤条件和处理逻辑分支。
789 1
|
自然语言处理 测试技术 开发工具
报名参加通义灵码高校训练营,领 300 元阿里云产品通用抵扣金
对每一个开发者个人而言,应该如何更好地认识大模型、理解大模型、与大模型相处?如何通过智能编程工具等的使用加速成长、保持竞争力?为了帮助以高校学生为核心群体的开发者在大模型时代下加速成长,2024 年起,阿里云云工开物与通义灵码团队共同发起了“通义灵码高校系列实践训练营”,6 月 4 日至 8 月 4 日,以“大模型时代开发者成长指南”为核心的第三期线上训练营正式启动。
413 10
|
开发者 C# UED
WPF多窗口应用程序开发秘籍:掌握窗口创建、通信与管理技巧,轻松实现高效多窗口协作!
【8月更文挑战第31天】在WPF应用开发中,多窗口设计能显著提升用户体验与工作效率。本文详述了创建新窗口的多种方法,包括直接实例化`Window`类、利用`Application.Current.MainWindow`及自定义方法。针对窗口间通信,介绍了`Messenger`类、`DataContext`共享及`Application`类的应用。此外,还探讨了布局控件与窗口管理技术,如`StackPanel`与`DockPanel`的使用,并提供了示例代码展示如何结合`Messenger`类实现窗口间的消息传递。总结了多窗口应用的设计要点,为开发者提供了实用指南。
857 0
|
机器学习/深度学习 人工智能 编解码

热门文章

最新文章