[WinForm][DevExpress]自訂GridControl中按鈕文字內容

來源:互聯網
上載者:User

標籤:winform   style   class   blog   code   http   

最近項目開發中,使用到了GridControl的FindPanel,這樣可以很好的對資料進行篩選,可是所展現的按鈕文字是英文,

那怎麼定義兩個按鈕問題,以符合項目需求了?經過一番搜尋發現利用GridLocalizer可以很好實現:

核心代碼:

   public class BuilderGridLocalizer : GridLocalizer    {        Dictionary<GridStringId, string> CusLocalizedKeyValue = null;        /// <summary>        /// 帶參數的建構函式        /// </summary>        /// <param name="cusLocalizedKeyValue">需要轉移的GridStringId,其對應的文字描述</param>        public BuilderGridLocalizer(Dictionary<GridStringId, string> cusLocalizedKeyValue)        {            CusLocalizedKeyValue = cusLocalizedKeyValue;        }        /// <summary>        /// 重載        /// </summary>        /// <param name="id">GridStringId</param>        /// <returns>string</returns>        public override string GetLocalizedString(GridStringId id)        {            if (CusLocalizedKeyValue != null)            {                string _gridStringDisplay = string.Empty;                foreach (KeyValuePair<GridStringId, string> gridLocalizer in CusLocalizedKeyValue)                {                    if (gridLocalizer.Key.Equals(id))                    {                        _gridStringDisplay = gridLocalizer.Value;                        break;                    }                }                return _gridStringDisplay;            }            return base.GetLocalizedString(id);        }    }
定義一個類繼承GridLocalizer,重寫GetLocalizedString方法,邏輯很簡單;為了以後能更簡單重複利用代碼,減少重複編碼,所以在另外一個類中添加一個方法,如下:
        /// <summary>        ///  自訂GridControl按鈕文字        /// </summary>        /// <param name="girdview">GridView</param>        /// <param name="cusLocalizedKeyValue">需要轉移的GridStringId,其對應的文字描述</param>        public static void CustomButtonText(this GridView girdview, Dictionary<GridStringId, string> cusLocalizedKeyValue)        {            BuilderGridLocalizer _bGridLocalizer = new BuilderGridLocalizer(cusLocalizedKeyValue);            GridLocalizer.Active = _bGridLocalizer;        }

這樣子我們可以很簡單使用,代碼如下:

        private Dictionary<GridStringId, string> SetGridLocalizer()        {            Dictionary<GridStringId, string> _gridLocalizer = new Dictionary<GridStringId, string>();            _gridLocalizer.Add(GridStringId.FindControlFindButton, "尋找");            _gridLocalizer.Add(GridStringId.FindControlClearButton, "清空");            return _gridLocalizer;        }        private void Form1_Load(object sender, EventArgs e)        {            Dictionary<GridStringId, string> _gridLocalizer = SetGridLocalizer();            gridView1.CustomButtonText(_gridLocalizer);            gridControl1.DataSource = CreateTable(20);            gridView1.ShowFindPanel();        }

代碼效果:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.