欢迎来到我的的博客园,祝大家学有所成,早点实现自己的人生理想。

更改DEVExpress的Column的DisplayFormat为自定义的方法。

更改DEVExpress的Column的DisplayFormat为自定义的方法。

 

 

 public partial class Form1 : XtraForm
    {
        public Form1()
        {
            InitializeComponent();
            InitGrid();
            gridView1.Columns[2].DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom;
            gridView1.Columns[2].DisplayFormat.Format = new MyExamFormat();
        }

        public class MyExamFormat : IFormatProvider, ICustomFormatter
        {
            public string NumberToChinese(int num)
            {
                string numStr = "0123456789";
                string chineseStr = "零一二三四五六七八九";
                if (num >= 0 && num <= 9) { return chineseStr[numStr.IndexOf(num.ToString()[0])].ToString(); }
                else if (num >= 10 && num <= 19) { if (num == 10) { return ""; } return "" + chineseStr[numStr.IndexOf(num.ToString()[1])].ToString(); }
                else if (num >= 20 && num <= 99)
                {
                    if (num % 10 == 0) { return chineseStr[numStr.IndexOf(num.ToString()[0])].ToString() + ""; }
                    else return chineseStr[numStr.IndexOf(num.ToString()[0])].ToString() + "" + chineseStr[numStr.IndexOf(num.ToString()[1])].ToString();
                }
                else if (num >= 100 && num <= 999)
                {
                    if (num % 100 == 0) { return chineseStr[numStr.IndexOf(num.ToString()[0])].ToString() + ""; }
                    else return chineseStr[numStr.IndexOf(num.ToString()[0])].ToString() + "" +
                      ((int.Parse(num.ToString().Substring(1).ToString()).ToString().Length != (num.ToString().Length - 1)) ?
                         "" + NumberToChinese(int.Parse(num.ToString().Substring(1)))
                        : NumberToChinese(int.Parse(num.ToString().Substring(1))));
                }
                else if (num >= 1000 && num <= 9999)
                {
                    if (num % 1000 == 0) { return chineseStr[numStr.IndexOf(num.ToString()[0])].ToString() + ""; }
                    else return
                         chineseStr[numStr.IndexOf(num.ToString()[0])].ToString() + "" +
                      ((int.Parse(num.ToString().Substring(1).ToString()).ToString().Length != (num.ToString().Length - 1)) ?
                         "" + NumberToChinese(int.Parse(num.ToString().Substring(1)))
                        : NumberToChinese(int.Parse(num.ToString().Substring(1))));
                }
                return num.ToString();
            }

            public object GetFormat(Type formatType)
            {
                if (formatType == typeof(ICustomFormatter))
                {
                    return this;
                }
                else return null;
            }

            public string Format(string format, object arg, IFormatProvider formatProvider)
            {
                return "" + NumberToChinese(int.Parse(arg + "")) + "";
            }
        }
        BindingList<Person> gridDataList = new BindingList<Person>();
        void InitGrid()
        {
            gridDataList.Add(new Person("John", "Smith", 10));
            gridDataList.Add(new Person("Gabriel", "Smith", 15));
            gridDataList.Add(new Person("Ashley", "Smithfdsaf", 11));
            gridDataList.Add(new Person("Adrian", "some comment", 987));
            gridControl.DataSource = gridDataList;
        }

    }

显示效果如下:

 

 

宋兴柱博客地址:http://www.cnblogs.com/songxingzhu

 

posted @ 2015-01-06 11:48  宋兴柱  阅读(10658)  评论(2编辑  收藏  举报