DevExpress中GridControl的使用筆記


主要參考鏈接:DevExpress GridControl控件使用


Content

  • [Level 1:基本](#Level 1:基本)
  • [Level 2:列名](#Level 2:列名)
  • [Level 3:格式化顯示](#Level 3:格式化顯示)
  • [Level 4:自定義顯示](#Level 4:自定義顯示)
  • [Level 5:分組](#Level 5:分組)
  • [Level 6:匯總](#Level 6:匯總)
  • [Level 7:顯示行號](#Level 7:顯示行號)
  • [Level 8:點擊事件](#Level 8:點擊事件)
  • [Level 9:自定義繪制](#Level 9:自定義繪制)
  • [Level 10:Cell中的控](#Level 10:Cell中的控)
  • [Level 11:BandedGridView](#Level 11:BandedGridView)
  • [Level 12:Cell中的控件2](#Level 12:Cell中的控件2)
  • [Level 13:主從表(分層表)](#Level 13:主從表(分層表))

Level 1:基本

代碼:

        private void Form1_Load(object sender, EventArgs e)
        {
            BindDataSource(InitDt());
        }
        
        private DataTable InitDt()
        {
            DataTable dt = new DataTable("個人簡歷");
            dt.Columns.Add("id", typeof(int));
            dt.Columns.Add("name", typeof(string));
            dt.Columns.Add("sex", typeof(int));
            dt.Columns.Add("address", typeof(string));
            dt.Columns.Add("aihao", typeof(string));
            dt.Columns.Add("phone", typeof(string));
       
            dt.Rows.Add(new object[] { 1, "張三", 1, "東大街6號", "看書", "12345678910"});
            dt.Rows.Add(new object[] { 1, "王五", 0, "西大街2號", "上網(wǎng),游戲", "" });
            dt.Rows.Add(new object[] { 1, "李四", 1, "南大街3號", "上網(wǎng),逛街", "" });
            dt.Rows.Add(new object[] { 1, "錢八", 0, "北大街5號", "上網(wǎng),逛街,看書,游戲", "" });
            dt.Rows.Add(new object[] { 1, "趙九", 1, "中大街1號", "看書,逛街,游戲", ""});
            return dt;
        }

        private void BindDataSource(DataTable dt)
        {
            //綁定DataTable  
            gridControl1.DataSource = dt;
        }  

效果:

1.png

Level 2:列名

設(shè)置:

2.png

效果:

3.png

Level 3:格式化顯示

代碼:

        private DataTable InitDt()
            {
                DataTable dt = new DataTable("個人簡歷");
                 dt.Columns.Add("id", typeof(int));
                dt.Columns.Add("name", typeof(string));
                dt.Columns.Add("sex", typeof(int));
                dt.Columns.Add("address", typeof(string));
                dt.Columns.Add("aihao", typeof(string));
                dt.Columns.Add("phone", typeof(string));

                dt.Columns.Add("data", typeof(decimal));
                dt.Columns.Add("time", typeof(DateTime));
                dt.Columns.Add("custom", typeof(string));
           
                dt.Rows.Add(new object[] { 1, "張三", 1, "東大街6號", "看書", "12345678910",12,"2018/4/26","data"});
                dt.Rows.Add(new object[] { 1, "王五", 0, "西大街2號", "上網(wǎng),游戲", "12315", 23333, "2018/4/26", "test" });
                dt.Rows.Add(new object[] { 1, "李四", 1, "南大街3號", "上網(wǎng),逛街", "", 12.345, "2018/4/26", "" });
                dt.Rows.Add(new object[] { 1, "錢八", 0, "北大街5號", "上網(wǎng),逛街,看書,游戲", "", 0.123, "2018/4/26", "" });
                dt.Rows.Add(new object[] { 1, "趙九", 1, "中大街1號", "看書,逛街,游戲", "", 3.1415926, "2018/4/26", "" });
                return dt;
            }

設(shè)置:


5.png

6.png

7.png

效果:


4.png

Tips:

1望蜡、gridControl的每一列原始數(shù)據(jù)是Value呼畸,但是顯示數(shù)據(jù)是 DisplayText稼虎,默認(rèn)DisplayText的值即是Value通過DisplayFormat轉(zhuǎn)換之后的值。

2、 gridControl下的事件一般是包含表格GridView切換,點擊,更改的事件,用的不多种玛;每一個GridView下的事件包含行列處理,菜單顯示瓤檐,分組排序等事件赂韵,我們常用。(所有在使用事件時挠蛉,一定要明確是control事件還是view事件)

Level 4:自定義顯示

代碼:

    private void gridView1_CustomColumnDisplayText(object sender, 
            DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)
        {
            if (e.Column.FieldName == "sex")
            {
                switch (e.Value.ToString().Trim())
                {
                    case "1":
                        e.DisplayText = "男";
                        break;
                    case "0":
                        e.DisplayText = "女";
                        break;
                    default:
                        e.DisplayText = "";
                        break;
                }}  
        }  
8.png

效果:


9.png

Level 5:分組

按照性別進(jìn)行分組:


10.png

效果:


11.png

Level 6:匯總

設(shè)置:

1祭示、顯示面板

12.png

2、匯總項設(shè)置

13.png

效果:


14.png

Level 7:顯示行號

設(shè)置:

15.png

代碼:

16.png

效果:

17.png

Level 8:點擊事件

18.png
 private void gridView1_RowCellClick(object sender, 
            DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                Console.WriteLine("Button:MouseButtons.Left");
            }

            if (e.Clicks == 2)
            {
                Console.WriteLine("Clicks:2");
            }

            if (e.Delta > 0)
            {
                Console.WriteLine("Delta > 0");
            }

            if (e.X > 0 && e.Y >0)
            {
                Console.WriteLine("Pos:({0},{1})",e.X,e.Y);
            }

            if (e.RowHandle > 0)
            {
                Console.WriteLine("Row:{0}",e.RowHandle);
            }

            if (e.CellValue != null)
            {
                Console.WriteLine("CellValue:{0}",e.CellValue);
            }

            if (e.Column != null)
            {
                Console.WriteLine("Column:{0}",e.Column.ToString());
            }

        }

Level 9:自定義繪制

代碼:

19.png
     private void gridView1_CustomDrawCell(object sender, 
            DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
        {
            if (e.Column.FieldName.Equals("data"))
            {
                GridCellInfo cellInfo = e.Cell as GridCellInfo;
                if (cellInfo.IsDataCell )
                {
                    if (double.Parse(cellInfo.CellValue.ToString()) < 1)
                    {
                        e.Appearance.BackColor = Color.OrangeRed;
                    }
                    else if (double.Parse(cellInfo.CellValue.ToString()) < 100)
                    {
                        e.Appearance.BackColor = Color.YellowGreen;
                    }
                    else
                    {
                        e.Appearance.BackColor = Color.Gold;}
                }
            }
        }

效果:

20.png

Level 10:Cell中的控件

設(shè)置:

21.png

點開ColumnEdit選項谴古,設(shè)置選中時數(shù)據(jù)的類型和值质涛,還可設(shè)置灰色和未選中狀態(tài)的數(shù)據(jù)。

23.png

效果:

22.png

Level 11:BandedGridView

轉(zhuǎn)換為BandedGridView:

25.png

設(shè)置Bands:

26.png

效果:


24.png

Level 12:Cell中的控件2

A1掰担、添加按鈕控件

1汇陆、新增一個無綁定的列

27.png

2、ColumnEdit選擇repositoryItemButtonEdit

28.png

3带饱、選擇Button項


29.png

4毡代、添加新項,修改Caption勺疼,并選擇Kind為Glyph

30.png

5教寂、修改TestEditStyle為HideTextEditor

31.png

6、選擇In-place Editor Repository执庐,找到新添加的按鈕酪耕,選擇ButtonClick事件

32.png

7、代碼

    private void repositoryItemButtonEdit1_ButtonClick(object sender, 
            DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
        {
            Console.WriteLine("Row:{0},Index:{1}", gridView1.GetFocusedDataSourceRowIndex(), e.Button.Index);

            if (e.Button.Index == 0)//刪除按鈕
            {
                table.Rows.RemoveAt(gridView1.GetFocusedDataSourceRowIndex());
            }
            else//編輯按鈕
            {
                MessageBox.Show("編輯 Index:" + e.Button.Index);

            }

        }

效果:


33.png

A2轨淌、另一種按鈕控件

和上一種方式一樣迂烁,主要區(qū)別為:

* 選擇一個綁定了數(shù)據(jù)的列
  • 只添加一個按鈕
  • 并選擇TestEditStyle為DisableTextEditor
    35.png

效果:


34.png

A3看尼、各種彈出選項框:

參考:DEVEXPRESS GRIDVIEW 代碼添加按鈕

Level 13:主從表(分層表)

待續(xù)......

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市婚被,隨后出現(xiàn)的幾起案子狡忙,更是在濱河造成了極大的恐慌梳虽,老刑警劉巖址芯,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異窜觉,居然都是意外死亡谷炸,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進(jìn)店門禀挫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來旬陡,“玉大人,你說我怎么就攤上這事语婴∶杳希” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵砰左,是天一觀的道長匿醒。 經(jīng)常有香客問我,道長缠导,這世上最難降的妖魔是什么廉羔? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮僻造,結(jié)果婚禮上憋他,老公的妹妹穿的比我還像新娘。我一直安慰自己髓削,他們只是感情好竹挡,可當(dāng)我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著立膛,像睡著了一般揪罕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上旧巾,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天耸序,我揣著相機(jī)與錄音,去河邊找鬼鲁猩。 笑死坎怪,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的廓握。 我是一名探鬼主播搅窿,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼嘁酿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了男应?” 一聲冷哼從身側(cè)響起闹司,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎沐飘,沒想到半個月后游桩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡耐朴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年借卧,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片筛峭。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡铐刘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出影晓,到底是詐尸還是另有隱情镰吵,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布挂签,位于F島的核電站疤祭,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏竹握。R本人自食惡果不足惜画株,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望啦辐。 院中可真熱鬧谓传,春花似錦、人聲如沸芹关。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽侥衬。三九已至诗祸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間轴总,已是汗流浹背直颅。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留怀樟,地道東北人功偿。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像往堡,于是被迫代替她去往敵國和親械荷。 傳聞我的和親對象是個殘疾皇子共耍,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容