天天看點

DevExpress GridControl 背景設定列

/// <summary>
        /// 初始化GridView 
        /// </summary>
        /// <param name="gv">GridView 名稱</param>
        /// <param name="captions">列标題</param>
        /// <param name="fieldName">列字段</param>
        /// <param name="widths">寬度 如果寬度為0 則列隐藏</param>
        public void InitGrid(DevExpress.XtraGrid.Views.Grid.GridView gv,string[] captions, string[] fieldName, int[] widths) {
          //列标題 和列名個數是否比對
            if (captions.Length != fieldName.Length) {
                MessageBox.Show("列标題和列名個數不比對");
                return;
            }
            //清空列
            gv.Columns.Clear();
            //定義一列
            DevExpress.XtraGrid.Columns.GridColumn gc = null;
            //聲明列數組
            DevExpress.XtraGrid.Columns.GridColumn[] gcs = new DevExpress.XtraGrid.Columns.GridColumn[captions.Length];
            //列設定
            for (int i = 0; i < captions.Length; i++) {
                gc = new DevExpress.XtraGrid.Columns.GridColumn();
                gc.Caption = captions[i];
                gc.FieldName = fieldName[i];
                gc.Name = fieldName[i];
                gc.VisibleIndex = i;
                //預設顯示,如果寬度=0 ,則隐藏
                gc.Visible = true;
                if (widths != null)
                {
                    //如果列寬的個數與标題個數相同
                    if (widths.Length == captions.Length)
                    {
                        gc.Width = widths[i];
                        gc.Visible = (widths[i] != 0) ? true : false;
                    }
                }
                gcs.SetValue(gc, i);
            }
            //gv 增加列
            gv.Columns.AddRange(gcs);
            //列寬為空則自适應寬度
            gv.OptionsView.ColumnAutoWidth = (widths == null) ? true : false;

            //gv 資料清單設定
            gv.OptionsFind.AllowFindPanel = false;
            gv.Appearance.HeaderPanel.Options.UseTextOptions = true;
            gv.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
            gv.OptionsView.ShowGroupPanel = false;

            //列寬為空
            if (widths == null) {
                gv.BestFitColumns();
            }
        }
           

調用(舉例):

//資料清單 加載
            InitGrid(gridView1,
                new string[]{"列标題1","列标題2","列标題3","列标題4"},
                new string[]{"字段1","字段2","字段3","字段4"},
                    new int[]{100,50,60,90});