翻譯|產品更新|編輯:龔雪|2023-02-28 09:59:01.397|閱讀 163 次
概述:DevExpress WinForm?已正式發布了重大版本v22.2,此版本升級數據展示的相關組件——Data Grid(數據網格)、DirectX表單、Data Editors(數據編輯器)等,歡迎下載最新版控件體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
DevExpress WinForms擁有180+組件和UI庫,能為Windows Forms平臺創建具有影響力的業務解決方案。DevExpress WinForms能完美構建流暢、美觀且易于使用的應用程序,無論是Office風格的界面,還是分析處理大批量的業務數據,它都能輕松勝任!
DevExpress WinForm 已正式發布了重大版本v22.2,此版本升級數據展示的相關組件——Data Grid(數據網格)、DirectX表單、Data Editors(數據編輯器)等,歡迎下載最新版控件體驗!
DevExpress技術交流群7:674691612 歡迎一起進群討論
在GridView.DetailTabStyle事件中的新選項允許開發者根據特定的條件啟用/禁用和顯示/隱藏單個詳細選項卡(在代碼中)。
C#
void GridView_DetailTabStyle(object sender, DetailTabStyleEventArgs e) { if (e.Caption == "Notes" && <CUSTOM_CONDITION>) e.Visible = false; if (e.Caption == "Users" && <CUSTOM_CONDITION>) e.Enabled = false; }
Master-Detail - 將顯示屬性應用于列表屬性
現在開發人員可以應用“Display”數據注釋屬性來列出數據對象中的屬性。
C#
public class Category { public int ID { get; set; } public string Name { get; set; } [Display(Name="PRODUCTS")] public List<Product> Products { get; set; } [Display(AutoGenerateField=false)] public List<Note> Notes { get; set; } }
BandPositionChanged事件
當一個波段改變了它的位置或可見性時,事件會觸發:
表單標題現在可以顯示Bar Item,像工具欄表單一樣,DirectX表單頭部包括兩個可以接受Bar Item的區域,最左邊的區域可以在表單圖標旁邊顯示Bar Item,最右邊的區域可以在表單的最小化-最大化-關閉按鈕之前顯示Bar Item。
新版本繼續擴展DirectX兼容控件和組件的列表,這些控件和組件可以放置/顯示在DirectX表單中,同時DirectX Form(表單)同時支持DevExpress Dock和Document Manager組件。
新的ShadowDrawMode為指示器和連接器添加了發光效果,用戶可以對激活元素、非激活元素或激活/非激活元素同時應用發光效果。
全新的CustomDrawEmptyForeground事件允許開發者在ListBox控件中顯示不包含項目的自定義內容,用戶可以使用標準自定義繪制API或在列表框中呈現HTML模板。
Example 1 - 傳統自定義繪制
C#
void ListBoxControl1_CustomDrawEmptyForeground(object sender, ListBoxDrawEmptyForegroundEventArgs e) { e.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; e.Appearance.DrawString(e.Cache, "The ListBox is empty.", e.Bounds); }
Example 2 - 渲染HTML模板
C#
// Local painting context that contains HTML tree state. DxHtmlPainterContext ctx = new DxHtmlPainterContext(); // Draw HTML template. HtmlTemplate htmlTemplate = new HtmlTemplate(LoadTemplate("ListBoxEmptyForeground.html"), LoadTemplate("ListBoxEmptyForeground.css")); void ListBoxControl1_CustomDrawEmptyForeground(object sender, ListBoxDrawEmptyForegroundEventArgs e) { e.DrawHtml(htmlTemplate, ctx); } static string LoadTemplate(string fileName) { return File.ReadAllText(fileName); } void ListBoxControl1_MouseMove(object sender, MouseEventArgs e) { ListBoxControl listControl = sender as ListBoxControl; if(listControl.ItemCount == 0) { ctx.OnMouseMove(e); listControl.Cursor = ctx.GetCursor(e.Location); listControl.Invalidate(); } else listControl.Cursor = Cursors.Default; } // Handle the 'Add Items' button's click. void ListBoxControl1_MouseDown(object sender, MouseEventArgs e) { ListBoxControl listControl = sender as ListBoxControl; if(listControl.ItemCount == 0 && e.Button == MouseButtons.Left) { var clickInfo = ctx.CalcHitInfo(e.Location); if(clickInfo != null && clickInfo.ParentHasId("btnAdd")) listControl.Items.AddRange(new string[] { "Item 1", "Item 2", "Item 3" }); } }
HTML
<div class="container"> <div class="title">There are no items in the ListBox control</div> <div class="button" id="btnAdd">Add Items</div> </div>
CSS
.container { display: flex; flex-direction: column; justify-content: center; align-items: center; height: 100%; } .title { font-size: 14px; } .button { background-color: @green; color: @white; opacity: 0.8; border: 1px solid @green; border-radius: 4px; padding: 8px 18px; font-size: 13px; margin: 8px; text-align: center; cursor: pointer; } .button:hover { background-color: @green; box-shadow: 0px 0px 3px @green; opacity: 0.9; }
列表編輯器 - 排序項目升序、降序和自定義順序
WinForms CheckedComboBoxEdit現在支持在解除綁定模式下的排序操作,使用其新的SortOrder屬性來升序或降序對項目進行排序。
新版本還在ListBox、Checked ListBox、Image ListBox和Checked Combobox控件中添加了CustomSort事件,處理此事件來使用自定義排序邏輯對列表項進行排序。
C#
using DevExpress.XtraEditors.Controls; void CheckedListBoxControl1_CustomSort(object sender, CheckedListBoxCustomSortEventArgs e) { if(e.Item1.CheckState == e.Item2.CheckState) e.Result = ((string)e.Value1).CompareTo((string)e.Value2); else e.Result = e.Item1.CheckState == CheckState.Checked ? -1 : 1; } void CheckedListBoxControl1_ItemCheck(object sender, DevExpress.XtraEditors.Controls.ItemCheckEventArgs e) { checkedListBoxControl1.Sort(); } void Form1_Load(object sender, EventArgs e) { checkedListBoxControl1.Items.AddRange(new CheckedListBoxItem[] { new CheckedListBoxItem(){ Value = "Bart Arnaz" }, new CheckedListBoxItem(){ Value = "Leah Simpson" }, new CheckedListBoxItem(){ Value = "Arnie Schwartz" }, new CheckedListBoxItem(){ Value = "Billy Zimmer" }, new CheckedListBoxItem(){ Value = "Samantha Piper" }, new CheckedListBoxItem(){ Value = "Maggie Boxter" }, new CheckedListBoxItem(){ Value = "Brad Farkus" }, }); checkedListBoxControl1.CheckOnClick = true; }
不兼容的值類型異常
現在當綁定到不兼容的類型值時,所有查找編輯器(LookUpEdit、SearchLookUpEdit、TreeListLookUpEdit和GridLookUpEdit)都提供警告。
開發者還可以啟用ThrowExceptionOnInvalidLookUpEditValueType選項來檢測數據類型問題并拋出異常。
在Delete/Backspace鍵上清除值
如果編輯器允許用戶用鍵盤重置其值,用戶現在可以通過按Delete或Backspace鍵清除查找值(AllowNullInput選項啟用)。
Dropdown窗口中的SVG支持
LookUpEdit現在可以在下拉菜單中顯示SVG圖形(開箱即用)。
在Enter鍵上選擇First Item
新的SelectFirstRowOnEnterKey選項允許用戶在搜索操作后按Enter鍵時選擇下拉列表中的第一個項目。
文本編輯中的新日期/時間掩碼(.NET 6+)
新的Date-Time掩碼幫助開發者編輯DateOnly和TimeOnly數據結構,當使用其中一個掩碼時,文本編輯器自動將其EditValue轉換為適當的類型。
DateOnly和TimeOnly掩碼類型可以在 .NET 6+應用中使用。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網