DevExpress Winforms Controls 内置140多个UI控件和库,完美构建流畅、美观且易于使用的应用程序。想要体验击下载>>
在v20.1版本中,DoFormatEditValue和DoParseEditValue(在XtraEditors命名空间中)将不再是虚拟的,并且不再可以被覆盖。技术团队更是了两个技术示例,如果您在应用中使用此API,建议您在决定升级到v20.1时对代码进行同样的更改。
先前的执行:
protected override ConvertEditValueEventArgs DoFormatEditValue(object val)protected override ConvertEditValueEventArgs DoParseEditValue(object val)
当前实施:
protected override object DoFormatEditValue(object val, out bool handled)protected override object DoParseEditValue(object val, out bool handled)
//version 19.2 and olderprotected override ConvertEditValueEventArgs DoFormatEditValue(object val) {ConvertEditValueEventArgs result = base.DoFormatEditValue(val);result.Value = MyFormatEditValue(result.Value);result.Handled = true;return result;}protected override ConvertEditValueEventArgs DoParseEditValue(object val) {ConvertEditValueEventArgs result = base.DoParseEditValue(val);result.Value = MyParseEditValue(result.Value);result.Handled = true;return result;}//version 20.1 and newerprotected override void RaiseFormatEditValue(ConvertEditValueEventArgs e) {base.RaiseFormatEditValue(e);De.Value = MyFormatEditValue(e.Value);e.Handled = true;}protected override void RaiseParseEditValue(ConvertEditValueEventArgs e) {base.RaiseParseEditValue(e);e.Value = MyParseEditValue(e.Value);e.Handled = true;}//Version 19.2 and olderprotected override ConvertEditValueEventArgs DoFormatEditValue(object val) {if(val is int) {switch((int)val) {case 0: return new ConvertEditValueEventArgs("zero");case 1: return new ConvertEditValueEventArgs("one");case 2: return new ConvertEditValueEventArgs("two");case 3: return new ConvertEditValueEventArgs("three");}}return base.DoFormatEditValue(val);}protected override ConvertEditValueEventArgs DoParseEditValue(object val) {if(val is string) {switch((string)val) {case "zero": return new ConvertEditValueEventArgs(0);case "one": return new ConvertEditValueEventArgs(1);case "two": return new ConvertEditValueEventArgs(2);case "three": return new ConvertEditValueEventArgs(3);}}return base.DoParseEditValue(val);}//Version 20.1 and newerprotected override void RaiseFormatEditValue(ConvertEditValueEventArgs e) {base.RaiseFormatEditValue(e);if(e.Value is int) {e.Handled = true;switch((int)e.Value) {case 0: e.Value = "zero"; break;case 1: e.Value = "one"; break;case 2: e.Value = "two"; break;case 3: e.Value = "three"; break;}}}protected override void RaiseParseEditValue(ConvertEditValueEventArgs e) {base.RaiseParseEditValue(e);if(e.Value is string) {e.Handled = true;switch((string)e.Value) {case "zero": e.Value = 0; break;case "one": e.Value = 1; break;case "two": e.Value = 2; break;case "three": e.Value = 3; break;}}}
对于IRangeControlClient的自定义实现,您将需要用DevExpress.XtraEditors.RangeControlClientOrientation手动替换System.Windows.Forms.Orientation类型。
对于调度程序控件,将所有出现的System.Windows.Forms.KeyEventArgs和System.Windows.Forms.MouseEventArgs类型替换为相应的对应变量:DevExpress.Portable.Input.PortableKeyEventArgs和DevExpress.Portable.Input.PortableMouseEventArgs。
// Version 19.2 and earlierpublic class MyKeyboardHandlerService : KeyboardHandlerServiceWrapper {public override void OnKeyDown(KeyEventArgs e) {...}}public class MyMouseHandlerService : MouseHandlerServiceWrapper {public override void OnMouseWheel(MouseEventArgs e) {...}}// Version 20.1 and newerpublic class MyKeyboardHandlerService : KeyboardHandlerServiceWrapper {public override void OnKeyDown(PortableKeyEventArgs e) {...}}public class MyMouseHandlerService : MouseHandlerServiceWrapper {public override void OnMouseWheel(PortableMouseEventArgs e) {...}}
DevExpress技术交流群2:775869749 欢迎一起进群讨论
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!