news 2026/4/16 16:00:16

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/4/5 6:45:12

OpenHarmony与ArkUI-X的跨平台开发AtomGit_Pocket速通版

1. 项目介绍 GitCode Pocket 是一个基于 OpenHarmony/ArkUI-X 开发的移动端应用&#xff0c;用于浏览和搜索 GitCode 平台上的项目、用户和组织。本教程将指导初学者学习、模仿并复刻这个项目。 结果预览 技术栈 开发框架: OpenHarmony/ArkUI-X开发语言: TypeScript ArkTSU…

作者头像 李华
网站建设 2026/4/16 12:33:23

5、Linux与Apache Web服务器使用指南

Linux与Apache Web服务器使用指南 1. 基础软件工具与Linux资源 在Linux系统中,有一系列实用的基础软件工具,这些工具能帮助用户进行不同方面的设置: - Xconfigurator :用于配置X Windows。 - usbview :用于查看USB相关信息。 - mouseconfig :配置鼠标。 - k…

作者头像 李华
网站建设 2026/4/16 10:17:04

JarDiff比较jar文件版本差异及代码影响范围

1. JarDiff 比较 jar 文件版本差异及代码影响范围&#xff08;内容还需要修改&#xff09; 1.1. 比较 jar 文件修改的方法的调用链及影响范围-作用 以下提供的功能&#xff0c;支持对比 jar 文件新旧版本&#xff0c;获得修改的方法&#xff0c;并生成这些方法向上或向下的方…

作者头像 李华
网站建设 2026/4/16 13:31:32

21、动态网页开发:Mason与PHP的深入探索

动态网页开发:Mason与PHP的深入探索 1. Mason未提及的特性 Mason是一个强大的工具,能将可执行代码嵌入HTML页面,把静态网页转变为动态网页。不过,我们对它的了解还只是冰山一角,下面为你介绍一些值得探索的特性。 1.1 初始化和清理标签 Mason提供了包含特定Perl代码块…

作者头像 李华
网站建设 2026/4/16 15:08:31

人工智能大模型:重塑未来科技格局的核心引擎

在当今数字化浪潮席卷全球的时代&#xff0c;人工智能大模型正以惊人的速度改变着我们的生活、工作和社会发展模式。从智能语音助手到自动驾驶汽车&#xff0c;从医疗影像诊断到金融风险预测&#xff0c;人工智能技术的应用已经渗透到各个领域&#xff0c;而大模型作为人工智能…

作者头像 李华