中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用ComponentOne提高.NET DataMap中的加載速度

發布時間:2021-11-30 17:01:57 來源:億速云 閱讀:190 作者:小新 欄目:編程語言

這篇文章主要介紹了如何使用ComponentOne提高.NET DataMap中的加載速度,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

概述

  1. FlexGrid for WinForm 采用了最新的數據綁定技術,并與Microsoft .NET Framework無縫集成。 因此,您可以獲得易于使用的靈活網格控件,用于創建用戶友好界面,以顯示、編輯、格式化、組織、匯總和打印表格數據。

  2. FlexGrid的DataMap屬性允許您實現“已翻譯”的行或列。在轉換的行或列中,網格不顯示存儲在單元格中的值。相反,它會在列的DataMap中查找這些值并顯示映射的值。

  3. 有時您可能需要在C1FlexGrid / C1FlexGridClassic中使用DataMap來顯示項目列表。即使列表包含大量數據,其加載也是平滑且即時的。在本文中,我們將討論如何使用自定義ComboBox編輯器以加快DataMap網格的加載時間。

創建編輯器并在Grid中托管它

所有內置網格編輯器都實現IC1EmbeddedEditor接口,ComponentOne Input庫中的控件也是如此。 如果我們想要使用帶有C1FlexGrid的第三方編輯器,我們需要創建一個派生類并實現此接口。

實現步驟

創建一個模型類MyComboItem來綁定ComboBox。

public class MyComboItem

{
    public int Id { get; set; }
    public string Display { get; set; }}

創建一個自定義控件MyComboBox,它繼承ComboBox類并實現IC1EmbeddedEditor接口。

public partial class MyComboBox : ComboBox, IC1EmbeddedEditor    {
        public MyComboBox()
        {
            InitializeComponent();
        }
        #region IC1EmbeddedEditor-Members        // Initialize editor: select transferred value
        public void C1EditorInitialize(object value, IDictionary editorAttributes)
        {
                this.SelectedValue = value;
        }
        //Get value from editor
        public object C1EditorGetValue()
        {
            return (base.SelectedItem as MyComboItem)?.Id; 
        }
        //Value is always TRUE
        public bool C1EditorValueIsValid()
        {
            return true;
        }
        //Adjust editor size
        public void C1EditorUpdateBounds(Rectangle rc)
        {
            if (rc.Height != -1 && rc.Width != -1)
            {
                this.Location = new Point(rc.X, rc.Y);
                this.Width = rc.Width;
                this.Height = this.DefaultSize.Height;
            }
            else
            {
    //Editor has scrolled out of the picture. Take over the height / width of -1.
                this.Width = -1;
                this.Height = -1;
            }
        }
        //TRUE if Escape or Enter
        public bool C1EditorKeyDownFinishEdit(KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Escape || e.KeyCode == Keys.Enter)
                return true;
            return false;
        }
        //Format and editor value
        public string C1EditorFormat(object value, string mask)
        {
            return null;
        }
       //Style of Editors
        public UITypeEditorEditStyle C1EditorGetStyle()
        {
            return UITypeEditorEditStyle.DropDown;
        }
        #endregion    }}

創建MyComboBox類的實例,并將其分配給網格的列編輯器,如下所示:

Dictionary<int, string> DMap = new Dictionary<int, string>();
            ComboBox c1 = new MyComboBox();
            List<MyComboItem> _list = new List<MyComboItem>();              
            c1.DataSource = _list;
            c1.ValueMember = "Id";
            c1.DisplayMember = "Display";            
            _flex.Cols[2].Editor = c1;
           _flex.Cols[2].DataMap = DMap; //use DataMap to show IDs as values.

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何使用ComponentOne提高.NET DataMap中的加載速度”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

盐池县| 济源市| 怀安县| 巴南区| 即墨市| 洛阳市| 黎川县| 鹤岗市| 昭觉县| 花莲县| 巨野县| 牟定县| 滦平县| 农安县| 龙口市| 金阳县| 林周县| 红原县| 固原市| 财经| 和田市| 合水县| 马龙县| 泸定县| 耒阳市| 丰县| 乐亭县| 靖宇县| 长阳| 兴安县| 团风县| 建昌县| 金昌市| 社会| 衢州市| 肃北| 四会市| 四子王旗| 大足县| 河东区| 麻城市|