原創|使用教程|編輯:龔雪|2020-06-08 09:42:40.710|閱讀 424 次
概述:本文包含重大的更改信息,這些更改信息可能會影響WinForms Data Editors命名控件中使用兩種未記錄方法的更改信息。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
下載DevExpress v20.1完整版 DevExpress v20.1漢化資源獲取
DevExpress Winforms Controls 內置140多個UI控件和庫,完美構建流暢、美觀且易于使用的應用程序。想要體驗?點擊下載>>
本文包含重大的更改信息,這些更改信息可能會影響WinForms Data Editors命名控件中使用兩種未記錄方法的更改信息。
在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)
請注意,不建議您重寫這些新方法,請改用RaiseFormatEditValue和RaiseParseEditValue,這些方法引發相應的編輯事件,不太可能再次更改。
//version 19.2 and older protected 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 newer protected override void RaiseFormatEditValue(ConvertEditValueEventArgs e) { base.RaiseFormatEditValue(e);D e.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 older protected 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 newer protected 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 earlier public class MyKeyboardHandlerService : KeyboardHandlerServiceWrapper { public override void OnKeyDown(KeyEventArgs e) { ... } } public class MyMouseHandlerService : MouseHandlerServiceWrapper { public override void OnMouseWheel(MouseEventArgs e) { ... } } // Version 20.1 and newer public class MyKeyboardHandlerService : KeyboardHandlerServiceWrapper { public override void OnKeyDown(PortableKeyEventArgs e) { ... } } public class MyMouseHandlerService : MouseHandlerServiceWrapper { public override void OnMouseWheel(PortableMouseEventArgs e) { ... } }
中國區首發 · DevExpress v20.1新版發布會報名開啟,名額有限先到先得哦~
DevExpress技術交流群2:775869749 歡迎一起進群討論
掃描關注DevExpress中文網微信公眾號,及時獲取最新動態及最新資訊
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網