界面控件DevExpress WinForms – 为何弃用受关注的MaskBox属性?

界面控件DevExpress WinForms - 为何弃用受关注的MaskBox属性 class=

界面控件DevExpress WinForms - 为何弃用受关注的MaskBox属性 class=

技术团队分许了许多支持中心的问题,来寻找需要通过MaskBox 属性访问标准文本框的实际用例。根据研究表明,这些案例中大多数属于两个主要类别:自动完成和文本处理(包括自定义输入掩码)。

文本自动完成
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;}
掩码和文本处理 API
  • GetCharFromPosition(System.Drawing.Point)
  • GetCharIndexFromPosition(System.Drawing.Point)
  • GetFirstCharIndexFromLine(System.Int32)
  • 和其他(请参阅此处的 TextEdit 方法的完整列表)

这些方法与标准TextBox方法相同,例如TextBoxBase.GetCharFromPosition(Point)。 如果您检索标准TextBox来利用其方法,现在可以使用本机TextEdit API来获得相同的结果。

例如,如果您需要限制用户输入的字节数,以前的版本要求您使用重写的 TextEdit.CreateMaskBoxInstance 方法实现自定义 TextEdit 后代,该方法接受自定义 TextBoxMaskBox 对象。 然后,这个自定义类将处理用户输入。

使用EnableCustomMaskTextInput方法,您不再需要任何继承逻辑,只需在分配的回调中直接检查字节长度。

using DevExpress.Data.Mask;int m_maxByteLength = 5;textEdit1.Properties.EnableCustomMaskTextInput(args => {// Do nothing if no edits were madeif (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;}
MaskBox 弃用

DevExpress WinForm | 下载试用

DevExpress WinForm拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!


DevExpress技术交流群6:600715373      欢迎一起进群讨论

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年6月24日
下一篇 2022年6月24日

相关推荐

发表回复

登录后才能评论