10h14 ' ngày 1/11/2011 . Mất hơn 15' để chuẩn bị cho các bạn cái này. Tâm huyết lắm đó nhé. Xem xong thấy thích thì tahnk tui cái:@:@:@
Dô:
Đầu tiên bạn làm theo các bước trong video sau để tạo ra cái Gridcontrol như mong muốn nhé[IMG]images/smilies/biggrin.png[/IMG]
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
Mã:
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
Mã:
private void gridView1_InvalidRowException(object sender, DevExpress.XtraGrid.Views.Base.InvalidRowException EventArgs 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.NoAc tion; }
2>gridView1_ValidateRow Code như sau
Mã:
private void gridView1_ValidateRow(object sender, DevExpress.XtraGrid.Views.Base.ValidateRowEventArg s 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.Ro wHandle, "MaSV").ToString(), ""); XtraMessageBox.Show(gridView1.GetRowCellValue(e.Ro wHandle, "TenSV").ToString(), ""); XtraMessageBox.Show(gridView1.GetRowCellValue(e.Ro wHandle, "SDT").ToString(), ""); XtraMessageBox.Show("Day la them moi nhe"); // Insert to DB } else { XtraMessageBox.Show(gridView1.GetRowCellValue(e.Ro wHandle, "MaSV").ToString(), ""); XtraMessageBox.Show(gridView1.GetRowCellValue(e.Ro wHandle, "TenSV").ToString(), ""); XtraMessageBox.Show(gridView1.GetRowCellValue(e.Ro wHandle, "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é[IMG]images/smilies/biggrin.png[/IMG]
gridControl1_ProcessGridKey Code như sau ()
Mã:
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(grid View1.FocusedRowHandle , "MaSV").ToString(), ""); XtraMessageBox.Show(gridView1.GetRowCellValue(grid View1.FocusedRowHandle, "TenSV").ToString(), ""); XtraMessageBox.Show(gridView1.GetRowCellValue(grid View1.FocusedRowHandle, "SDT").ToString(), ""); dt.Rows.RemoveAt(gridView1.FocusedRowHandle); } } }
Rồi cuối cùng là hưởng thành quả thôi[IMG]images/smilies/biggrin.png[/IMG]
Em không biết đưa cái Code vào Tag của C#. Bác nào sửa giùm em cho dễ đọc. Thank nhiều
View more random threads:
Thông qua phân tích dữ liệu Google từ 86 quốc gia, mới đây, một công ty tại Anh đã công bố bảng xếp hạng kích tấc "cậu nhỏ" của các nước trên thế giới. Kết quả, hầu hết các nước xếp ở nhóm đầu của...
"Chim" của chàng trai Việt thuộc...