提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|行业资讯|编辑:龚雪|2022-07-27 10:48:28.377|阅读 71 次
概述:本文将为大家揭秘DevExpress炙手可热的WinForms控件为何要在新版中弃用受关注的MaskBox属性,欢迎下载最新版产品体验!
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
获取DevExpress WinForms v22.1正式版下载
在官方技术团队发布的v20.2版本周期中,宣布了高级文本编辑器模式的可用性,高级文本编辑器模式引入了许多具有影响力的功能,包括插入符号/选择动画支持和嵌入式文本标签。在当时的发布公告中详细说明了未来的计划,以及官方技术团队在所有报告的问题得到解决后将其设为默认编辑器模式,虽然还没有将此设置为默认模式,但最新的WXI皮肤是朝着这个目标迈出的一大步。
当WXI皮肤处于激活状态时,所有文本编辑器都会切换到此高级模式。在这方面,有色文本选择可能是一个线索,但它肯定不是切换的唯一原因。 在新的 WXI 皮肤中,编辑器使用与不同编辑器状态相对应的附加背景元素,更多元素意味着额外的客户区和边界计算、增加的边界和内容绘制逻辑以及整体复杂性的增加。 在标准模式下解决这些挑战会产生副作用和伪影,因此技术团队决定利用高级模式的力量来解决这些问题。
在WXI皮肤中使用高级模式引发了围绕遗留代码(专为遗留、非高级编辑器模式编写的代码)兼容性的内部讨论,最受关注的当然是 属性。 此属性允许您获得标准的 WinForms 文本框控件(DevExpress WinForms TextEdit 编辑器的基础),但高级模式下的TextEdits是完整的自定义控件并且不再基于标准,这些编辑器的 MaskBox 属性返回 null(在 VB.NET 中为空)。
技术团队分许了许多支持中心的问题,来寻找需要通过MaskBox 属性访问标准文本框的实际用例。根据研究表明,这些案例中大多数属于两个主要类别:自动完成和文本处理(包括自定义输入掩码)。
现在可以通过本机 TextEditor API 使用自动完成功能,要引入自动完成功能,请设置 Editor.AdvancedModeOptions.AutoCompleteSource 属性以指定编辑器是否建议来自您的自定义数据源或自动填充源的条目(最近的项目、历史列表中的 URL、系统文件和文件夹名称等)。您需要指定适当的模式(Suggest、Append、两者的组合或 SuggestSingleWord),并分配自定义数据源(如果选择了CustomSource自动完成模式)。
using DevExpress.XtraEditors; void OnFormLoad(object sender, EventArgs e) { var DaysOfTheWeek = new AutoCompleteStringCollection(); DaysOfTheWeek.AddRange(new string[] {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"}); textEdit1.Properties.UseAdvancedMode = DevExpress.Utils.DefaultBoolean.True; textEdit1.Properties.AdvancedModeOptions.AutoCompleteMode = TextEditAutoCompleteMode.SuggestAppend; textEdit1.Properties.AdvancedModeOptions.AutoCompleteSource = AutoCompleteSource.CustomSource; textEdit1.Properties.AdvancedModeOptions.AutoCompleteCustomSource = DaysOfTheWeek; }
在之前的发布周期中,我们引入了一系列方法来帮助获取和修改编辑器文本:
这些方法与标准TextBox方法相同,例如。 如果您检索标准TextBox来利用其方法,现在可以使用本机TextEdit API来获得相同的结果。
至于低级输入掩码,我们最近添加了方法,此方法允许您手动跟踪用户操作并根据需要分配编辑器值。
例如,如果您需要限制用户输入的字节数,以前的版本要求您使用重写的 TextEdit.CreateMaskBoxInstance 方法实现自定义 TextEdit 后代,该方法接受自定义 TextBoxMaskBox 对象。 然后,这个自定义类将处理用户输入。
使用方法,您不再需要任何继承逻辑,只需在分配的回调中直接检查字节长度。
using DevExpress.Data.Mask; int m_maxByteLength = 5; textEdit1.Properties.EnableCustomMaskTextInput(args => { // Do nothing if no edits were made if (args.IsCanceled || args.ActionType == CustomTextMaskInputAction.Init) return; if (GetByteLength(args.ResultEditText) > m_maxByteLength) { args.Cancel(); return; } args.SetResult( args.ResultEditText, args.ResultCursorPosition, args.ResultSelectionAnchor); }); int GetByteLength(string text) { return System.Text.Encoding.Default.GetBytes(text).Length; }
总而言之,我们更新的 TextEdit API 允许您解决以前需要使用 MaskBox 属性的所有流行使用场景。 这意味着现在可以弃用这个属性,但并不是完全删除此属性,使您现有的代码无效。相反,我们现在认为所有与 MaskBox 相关的场景都已过时,并建议使用我们的原生编辑器 API。
DevExpress WinForm拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!
DevExpress技术交流群6:600715373 欢迎一起进群讨论
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:慧都网通过提供强大的3D CAD数据访问工具并适用于桌面、移动和Web的高级环境3D可视化发动机,HOOPS在提升造船设计和制造流程的效率方面发挥了重要作用。
HOOPS Luminate在汽车行业中的应用具有广泛的潜力和深远的影响。它通过提供高效的3D可视化、虚拟装配与拆解、性能分析、客户定制等功能,帮助汽车制造商在设计、生产和销售过程中提升效率、降低成本并提高产品质量。
在不断发展的软件开发世界中,使工具和框架与最新的平台版本保持同步至关重要,欢迎查阅~
全球航运业对国际贸易至关重要,全球 90% 以上的商品通过海运运输。准确监控和控制这些集装箱的移动对于维持高效的供应链至关重要。手动输入集装箱号码是这一程序的关键部分,它带来了相当大的挑战,例如人为错误和效率低下。
行业领先的界面控件开发包,帮助企业构建卓越应用!
DevExpress WinForms Subscription为Windows Forms平台创建具有影响力的业务解决方案,高性价比WinForms界面控件套包。
DevExpress DXperience Subscription高性价比的企业级.NET用户界面套包,助力企业创建卓越应用!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢