news 2026/3/13 1:29:04

C# Winfrom DevExpress 控件概述: Dev简介与汉化 基础控件 : Label TextEdit ButtonEdit MemoEdit Check..

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C# Winfrom DevExpress 控件概述: Dev简介与汉化 基础控件 : Label TextEdit ButtonEdit MemoEdit Check..

学习这个的 耗子味滋QAQ

Developer Express WinForms 控件概述:

Dev简介与汉化

基础控件 : Label TextEdit ButtonEdit MemoEdit CheckEdit RadioGroup DateEdit
CalendarControl SimpleButton CheckButton SpinEdit RatingControl
ColorEdit FontEdit TrackBarControl ProgressBarControl\
ToggleSwitch ImageEdit PictureEdit ImageSlider .....
ComboBoxEdit CheckedComboBoxEdit ImageComboBoxEdit
ListBoxControl CheckedListBoxControl ImageListBoxControl

布局控件 PanelControl GroupControl SplitContainerControl StackPanel TablePanel XtraTabControl SplitterControl

Developer Express(简称DevExpress)是一家专注于为软件开发人员提供高性能UI控件、工具和框架的软件公司。其产品广泛应用于Windows Forms、WPF、ASP.NET、Blazor、JavaScript等平台,帮助开发者快速构建企业级应用程序。

核心产品线

DevExpress WinForms
提供丰富的Windows Forms控件,包括数据网格、图表、报表、日程管理等组件,支持高DPI和现代化设计。

DevExpress WPF
针对WPF平台的UI控件库,包含MVVM框架、主题编辑器、数据可视化工具,适用于复杂桌面应用开发。

DevExpress ASP.NET
为ASP.NET Web Forms和MVC提供AJAX控件,如文件管理器、仪表盘、甘特图,支持响应式设计。

DevExpress Blazor
专为Blazor框架设计的组件库,包括数据网格、调度器、富文本编辑器,兼容Server和WebAssembly模式。

DevExpress JavaScript
跨平台的JavaScript控件,如DevExtreme,支持React、Angular、Vue等前端框架,涵盖移动端和Web端开发。

特色功能

  • 高性能数据处理:控件优化了大数据量处理能力,如虚拟滚动、异步加载。
  • 主题与样式:提供多种预定义主题(如Office 2019、Material Design),支持自定义样式。
  • 设计时支持:Visual Studio集成设计器,可通过拖拽快速配置控件属性。
  • 跨平台兼容性:部分产品支持.NET Core/.NET 5+,确保现代化技术栈兼容。

典型应用场景

  • 企业ERP/CRM系统开发
  • 数据分析与报表生成
  • 复杂表单和仪表盘设计
  • 跨平台移动应用构建

许可与支持

采用订阅制授权模式,提供定期更新和技术支持服务。开发者可通过官方示例代码库和活跃社区获取资源。

学习资源

  • 官方文档和API参考
  • GitHub示例项目
  • 视频教程与在线技术论坛

using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DXWinControls { public class SqlHelper { /// <summary> /// 连接字符串 /// </summary> private static string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString; /// <summary> /// 增、删、改的通用方法 /// 执行Sql语句或存储过程,返回受影响的行数 /// SQL注入 /// </summary> /// <param name="sql">sql语句或存储过程名</param> /// <param name="cmdType">执行的脚本类型 1:sql语句 2:存储过程</param> /// <param name="parameters">参数列表</param> /// <returns></returns> public static int ExecuteNonQuery(string sql, int cmdType, params SqlParameter[] parameters) { //select @@Identity 返回上一次插入记录时自动产生的ID int result = 0;//返回结果 using (SqlConnection conn = new SqlConnection(connStr)) { //执行脚本的对象cmd SqlCommand cmd = BuilderCommand(conn, sql, cmdType, null, parameters); result = cmd.ExecuteNonQuery();//执行T-SQL并返回受影响行数 cmd.Parameters.Clear(); } //using原理:类似于try finally return result; } /// <summary> /// 执行sql查询,返回第一行第一列的值 /// </summary> /// <param name="sql">sql语句或存储过程</param> /// <param name="cmdType">执行的脚本类型 1:sql语句 2:存储过程</param> /// <param name="parameters">参数列表</param> /// <returns></returns> public static object ExecuteScalar(string sql, int cmdType, params SqlParameter[] parameters) { object result = null;//返回结果 using (SqlConnection conn = new SqlConnection(connStr)) { //执行脚本的对象cmd SqlCommand cmd = BuilderCommand(conn, sql, cmdType, null, parameters); result = cmd.ExecuteScalar();//执行T-SQL并返回第一行第一列的值 cmd.Parameters.Clear(); if (result == null || result == DBNull.Value) { return null; } else { return result; } } } /// <summary> /// 执行sql查询,返回SqlDataReader对象 /// </summary> /// <param name="sql">sql语句或存储过程</param> /// <param name="cmdType">执行的脚本类型 1:sql语句 2:存储过程</param> /// <param name="parameters">参数列表</param> /// <returns></returns> public static SqlDataReader ExecuteReader(string sql, int cmdType, params SqlParameter[] parameters) { SqlConnection conn = new SqlConnection(connStr); SqlCommand cmd = BuilderCommand(conn, sql, cmdType, null, parameters); SqlDataReader reader; try { //conn.Open(); reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); return reader; } catch (Exception ex) { conn.Close(); throw new Exception("创建reader对象发生异常", ex); } } /// <summary> /// 执行查询,查询结果填充到DataTable 只针对查询一个表的情况 /// </summary> /// <param name="sql">sql语句或存储过程</param> /// <param name="cmdType">执行的脚本类型 1:sql语句 2:存储过程</param> /// <param name="parameters">参数列表</param> /// <returns></returns> public static DataTable GetDataTable(string sql, int cmdType, params SqlParameter[] parameters) { DataTable dt = null; using (SqlConnection conn = new SqlConnection(connStr)) { SqlCommand cmd = BuilderCommand(conn, sql, cmdType, null, parameters); SqlDataAdapter da = new SqlDataAdapter(cmd); dt = new DataTable(); da.Fill(dt); cmd.Parameters.Clear(); } return dt; } /// <summary> /// 执行查询,数据填充到DataSet /// </summary> /// <param name="sql">sql语句或存储过程</param> /// <param name="cmdType">执行的脚本类型 1:sql语句 2:存储过程</param> /// <param name="parameters">参数列表</param> /// <returns></returns> public static DataSet GetDataSet(string sql, int cmdType, params SqlParameter[] parameters) { DataSet ds = null; using (SqlConnection conn = new SqlConnection(connStr)) { SqlCommand cmd = BuilderCommand(conn, sql, cmdType, null, parameters); //数据适配器 //conn 自动打开 断开式连接 SqlDataAdapter da = new SqlDataAdapter(cmd); ds = new DataSet(); da.Fill(ds); //自动关闭conn } return ds; } /// <summary> /// 事务 执行批量sql /// </summary> /// <param name="listSql"></param> /// <returns></returns> public static bool ExecuteTrans(List<string> listSql) { using (SqlConnection conn = new SqlConnection(connStr)) { conn.Open(); SqlTransaction trans = conn.BeginTransaction(); SqlCommand cmd = BuilderCommand(conn, "", 1, trans); try { int count = 0; for (int i = 0; i < listSql.Count; i++) { if (listSql[i].Length > 0) { cmd.CommandText = listSql[i]; cmd.CommandType = CommandType.Text; count += cmd.ExecuteNonQuery(); } } trans.Commit(); return true; } catch (Exception ex) { trans.Rollback(); throw new Exception("执行事务出现异常", ex); } } } /// <summary> /// 事务 批量执行 CommandInfo 包括sql,脚本类型,参数列表 /// </summary> /// <param name="comList"></param> /// <returns></returns> public static bool ExecuteTrans(List<CommandInfo> comList) { using (SqlConnection conn = new SqlConnection(connStr)) { conn.Open(); SqlTransaction trans = conn.BeginTransaction(); SqlCommand cmd = BuilderCommand(conn, "", 1, trans); try { int count = 0; for (int i = 0; i < comList.Count; i++) { cmd.CommandText = comList[i].CommandText; if (comList[i].IsProc) cmd.CommandType = CommandType.StoredProcedure; else cmd.CommandType = CommandType.Text; if (comList[i].Paras!=null && comList[i].Paras.Length > 0) { cmd.Parameters.Clear(); foreach (var p in comList[i].Paras) { cmd.Parameters.Add(p); } } count += cmd.ExecuteNonQuery(); } trans.Commit(); return true; } catch (Exception ex) { trans.Rollback(); throw new Exception("执行事务出现异常", ex); } } } //public static T ExecuteSql<T>(string sql, int cmdType, DbParameter[] paras, Func<IDbCommand, T> action) //{ // using (DbConnection conn = new SqlConnection(connStr)) // { // conn.Open(); // IDbCommand cmd = conn.CreateCommand(); // cmd.CommandText = sql; // if (cmdType==2) // cmd.CommandType = CommandType.StoredProcedure; // return action(cmd); // } //} public static T ExecuteTrans<T>(Func<IDbCommand, T> action) { using (IDbConnection conn = new SqlConnection(connStr)) { conn.Open(); IDbTransaction trans = conn.BeginTransaction(); IDbCommand cmd = conn.CreateCommand(); cmd.Transaction = trans; return action(cmd); } } /// <summary> /// 构建SqlCommand /// </summary> /// <param name="conn">数据库连接对象</param> /// <param name="sql">SQL语句或存储过程</param> /// <param name="comType">命令字符串的类型</param> /// <param name="trans">事务</param> /// <param name="paras">参数数组</param> /// <returns></returns> private static SqlCommand BuilderCommand(SqlConnection conn, string sql, int cmdType, SqlTransaction trans, params SqlParameter[] paras) { if (conn == null) throw new ArgumentNullException("连接对象不能为空!"); SqlCommand command = new SqlCommand(sql, conn); if (cmdType == 2) command.CommandType = CommandType.StoredProcedure; if (conn.State == ConnectionState.Closed) conn.Open(); if (trans != null) command.Transaction = trans; if (paras != null && paras.Length > 0) { command.Parameters.Clear(); command.Parameters.AddRange(paras); } return command; } } }

Dev简介

Developer Express ---DevExpress

Dev Winform WPF Web Reporting

优势:美化:美化界面、控件定制简单、体验、专业化,替代所有的传统控件、菜单。

汉化


下载汉化包
汉化包文件夹重命名zh-CN
如果只是项目内部汉化,把汉化包放到bin/debug下面,然后main()
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("zh-CN");
统一汉化:把汉化包放到C:\Program Files (x86)\DevExpress 20.1\Components\Bin\Framework
执行命令:
2. D:\>cd C:\Program Files (x86)\DevExpress 20.1\Components\Bin\Framework\zh-CN
3. C:\Program Files (x86)\DevExpress 20.1\Components\Bin\Framework\zh-CN>dir /B *.dll>temp.bat
4. 以文本方式打开 temp.bat 文件并编辑,在 DevExpress 前加上“gacutil -i”
5. C:\Program Files (x86)\DevExpress 20.1\Components\Bin\Framework\zh-CN>temp.bat

其他 WPF

WPF UI 界面布局 魔术棒 文字笔记识别 技能提升 布局功能扩展与自定义 继承Panel的对象,测量与排列 系列七

https://blog.csdn.net/cao919/article/details/140194739

C# WPF 3D 数据孪生 系列六-CSDN博客

WPF 3D绘图 点云 系列五-CSDN博客

WPF UI 3D 多轴 机械臂 stl 模型UI交互-CSDN博客

爬C初试 掌握WPF入门知识 获取某.aspx类目及控制仪表盘的指向

https://blog.csdn.net/cao919/article/details/127741725

ASP.NET Webform和ASP.NET MVC 后台开发 大概80%常用技术

https://blog.csdn.net/cao919/article/details/146230296

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/12 21:51:42

智慧树网课自动化插件:3分钟搞定全网最全使用指南

智慧树网课自动化插件&#xff1a;3分钟搞定全网最全使用指南 【免费下载链接】zhihuishu 智慧树刷课插件&#xff0c;自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 还在为智慧树网课浪费时间而烦恼吗&#xff1f;这款智慧树…

作者头像 李华
网站建设 2026/3/12 10:21:28

3、Bash脚本编程基础与实践

Bash脚本编程基础与实践 1. 脚本执行 当脚本保存到 PATH 环境中时,它还不能作为独立脚本执行,需要为文件分配执行权限。以下是具体操作: - 直接用bash运行脚本 :可以使用 bash 直接运行脚本进行简单测试,命令示例如下: $ bash $HOME/bin/hello1.sh执行该命令后…

作者头像 李华
网站建设 2026/3/11 16:18:26

12、使用sed和AWK进行文件处理与虚拟主机创建

使用sed和AWK进行文件处理与虚拟主机创建1. 创建模板的第一步创建模板的首要步骤是分离出我们所需的行。以示例中的虚拟主机定义为例&#xff0c;需要的行包括VirtualHost的开始和结束标签以及其间的所有内容。我们可以使用行号来完成这一操作&#xff0c;不过这种方法可能不太…

作者头像 李华
网站建设 2026/3/4 14:52:58

7、Perl编程入门:基础语法与实用技巧

Perl编程入门:基础语法与实用技巧 1. 学习资源 在学习Perl时,有许多有用的资源可供参考。可以使用 perldoc 程序,例如: $ perldoc perldoc $ perldoc -f print此外,还有网站 www.perldoc.com/ ,以及新闻组、CPAN( www.perl.com )和相关的Perl书籍。 2. 基本…

作者头像 李华
网站建设 2026/3/8 13:21:05

16、mod_perl编程实战与项目应用

mod_perl编程实战与项目应用 1. mod_perl基础配置与执行 在服务器配置中,可通过以下设置让特定URI下的CGI脚本以 Apache::PerlRun 方式执行,减少编程不严谨带来的不良影响: Alias /sloppyperl/ /var/www/sloppyperl/ <Location /sloppyperl>SetHandler perl-scr…

作者头像 李华
网站建设 2026/3/10 23:05:01

亲测靠谱AI数字员工平台分享

亲测靠谱AI数字员工平台分享行业痛点分析当前AI数字员工领域面临着诸多技术挑战&#xff0c;严重制约了该行业的进一步发展。其中&#xff0c;最突出的问题在于数据获取与隐私保护之间的平衡难题。许多AI数字员工在运行过程中为了获取足够的数据以提高智能程度&#xff0c;存在…

作者头像 李华