GridControl

Màu nền
Font chữ
Font size
Chiều cao dòng

Sau khi đã có GridControl như trong Video.
+ Tạo ra 1 Datatable đặt tên là dt và nó là biến toàn cục
+ Trong sự kiện FormLoad code

        private void SinhVien_Load(object sender, EventArgs e)
        {
           
           
            // khởi tạo cột cho Datatable đã khai báo ở trên
            // Lưu ý tên cọt nhé: để gán FieldName của từng cột trên Grid cho chính xác
            // nó phân biệt cả hoa thường đó nhé
            dt.Columns.Add(new DataColumn("MaSV"));
            dt.Columns.Add(new DataColumn("TenSV"));
            dt.Columns.Add(new DataColumn("SDT"));
            // Add du lieu vao dt
            DataRow dr;
            dr = dt.NewRow();
            dr.BeginEdit();
            dr["MaSV"] = "SV0001";
            dr["TenSV"] = "Nguyen Van A";
            dr["SDT"] = "123123";
            dr.EndEdit();
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr.BeginEdit();
            dr["MaSV"] = "SV0002";
            dr["TenSV"] = "Nguyen Van B";
            dr["SDT"] = "123122133";
            dr.EndEdit();
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr.BeginEdit();
            dr["MaSV"] = "SV0003";
            dr["TenSV"] = "Nguyen Van C";
            dr["SDT"] = "123112323";
            dr.EndEdit();
            dt.Rows.Add(dr);
            // Gan dt va Gridcontrol
            gridControl1.DataSource = dt;

        }



Bạn Chọn vào cái Gridview1 trong cái ô có chứa RunDessign mà mình vừa bấm vào đó.
- chọn qua phần sự kiện(có cái dấu sấm sét đó) chọn các sự kiện sau và doubleClick vào các sự kiện đó
*Trong code mình đã Cmment lại rồi đó
1> gridView1_InvalidRowException và code như sau

        private void gridView1_InvalidRowException(object sender, DevExpress.XtraGrid.Views.Base.InvalidRowExceptionEventArgs e)
        {
            // Sự kiện này để người ta không chuyển qua dòng khác được khi có lỗi xảy ra nè
            // Nó nhận giá trị e.Valid của gridView1_ValidateRow để ứng xử
            // neu e,Valid =True thì nó cho chuyển qua dòng khác hoặc làm tác vụ khác
            // và ngược lại
            e.ExceptionMode = DevExpress.XtraEditors.Controls.ExceptionMode.NoAction;
        }



2>gridView1_ValidateRow Code như sau

        private void gridView1_ValidateRow(object sender, DevExpress.XtraGrid.Views.Base.ValidateRowEventArgs e)
        {
            string sErr = "";
            bool bVali = true;
            // kiem tra 3 cell cua mot dong dang Edit xem co rong ko?
            // minh quen mat kí tự xuống dòng trong C# rồi:D bên VB là VbnewLine
            if (gridView1.GetRowCellValue(e.RowHandle, "MaSV").ToString() == "")
            {
                bVali = false;
                sErr = sErr + "Vui long dien Ma SV";
            }
            if (gridView1.GetRowCellValue(e.RowHandle, "TenSV").ToString() == "")
            {
                bVali = false;
                sErr = sErr + "Vui long dien Ten Sinh Vien";
            }
            if (gridView1.GetRowCellValue(e.RowHandle, "SDT").ToString() == "")
            {
                bVali = false;
                sErr = sErr + "Vui long dien So dien thoai";
            }
            if (bVali)
            {
                // neu khong rỗng thì bụp cái này ra màn hình
                if (e.RowHandle < 0)// Đây là thêm mới nè:D
                {
                    XtraMessageBox.Show(gridView1.GetRowCellValue(e.RowHandle, "MaSV").ToString(), "");
                    XtraMessageBox.Show(gridView1.GetRowCellValue(e.RowHandle, "TenSV").ToString(), "");
                    XtraMessageBox.Show(gridView1.GetRowCellValue(e.RowHandle, "SDT").ToString(), "");
                    XtraMessageBox.Show("Day la them moi nhe");
                    // Insert to DB
                }
                else
                {
                    XtraMessageBox.Show(gridView1.GetRowCellValue(e.RowHandle, "MaSV").ToString(), "");
                    XtraMessageBox.Show(gridView1.GetRowCellValue(e.RowHandle, "TenSV").ToString(), "");
                    XtraMessageBox.Show(gridView1.GetRowCellValue(e.RowHandle, "SDT").ToString(), "");
                    XtraMessageBox.Show("Day la Update nhe");
                    // Update to DB
                }
            }
            else
            {

                e.Valid = false;
                // coi như valid không qua được. bạn sẽ không làm được gì trừ khi
                //điền thêm thông tin hoặc bấm nút ESC trên bàn phím
                XtraMessageBox.Show(sErr ,"Error!!!");
            }
           
        }



- Tiếp theo chọn Cái GridControl và chọn sự kiện sau
Chú ý phân biệt giữa cái GridView1 và cái GridControl1 nhé
gridControl1_ProcessGridKey Code như sau ()

        private void gridControl1_ProcessGridKey(object sender, KeyEventArgs e)
        {
            // kiểm tra xem có phải người dùng bấm nút xóa trên bàn phím
            // Và trạng thái của Gridcontrol có không phải là đang edit không (tránh
            // tình trạng người dùng đang focus để sửa 1 cell nào trong Grid view )
            if (e.KeyCode==Keys.Delete &&  gridView1.State != DevExpress.XtraGrid.Views.Grid.GridState.Editing )
            {
                if (XtraMessageBox.Show("Are you sure?", "Quest", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    XtraMessageBox.Show(gridView1.GetRowCellValue(gridView1.FocusedRowHandle , "MaSV").ToString(), "");
                    XtraMessageBox.Show(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "TenSV").ToString(), "");
                    XtraMessageBox.Show(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "SDT").ToString(), "");
                    dt.Rows.RemoveAt(gridView1.FocusedRowHandle);
                }
            }
        }



Rồi cuối cùng là hưởng thành quả thôi

Bạn đang đọc truyện trên: Truyen2U.Pro