C# - Kéo thả dòng từ một lưới sang một lưới khác trong cùng một form
Như tiêu đề đã nêu, bài viết này sẽ hướng dẫn cách lập trình cho gridcontrol để có thể kéo một dòng từ gridcontrol này sang một gridcontrol khác.
Drop and drag row from gridcontrol to another in the same form
Source code sử dụng VS2015 kèm Devexpress 16.2.4
Thực hiện ngay và luôn. Tạo một form gồm 2 gridcontrol như hình:

Kéo 2 cái GridControl từ Toolbox vào form, sau đó chỉnh thuộc tính cho cả 2 GridControl.
Lưu ý: GridControl khác GridView nha !!!
-
Thiết lập thuộc tính cho GridControl: Click chuột trái vào gridControl1 và nhấn F4 để mở bảng Properties, chỉnh AllowDrop thành
True
. Điều này nhằm cho phép GridControl nhận lệnh nhấn giữ chuột và kéo thả.

Tiếp tục click vào biểu tượng Events
(Hình tia sét trong bảng Properties), chuyển sang danh mục các sự kiện của GridControl, click đúp chuột vào sự kiện có tên DragDrop
và sự kiện DragOver
, để VS sẽ tạo sẵn cho mình 2 cái Events
đó. Thực hiện đủ 2 bước cho gridControl2
.

Thiết lập thuộc tính cho GridView: Click chuột vào gridView1, nhấn F4 để mở bảng Properties, trong mục OptionBehavior
, chỉnh thuộc tính EditTable
thành False
.
Bước này nhằm cho phép người dùng có thể nhấn chuột bất kì chỗ nào trong lưới và kéo thả tự do. Bạn có thể bỏ qua bước này, và thay vì kéo thả tự do, bạn có thể nắm đầu dòng và kéo thì vẫn Ô cê như thường.

Tiếp đến chuyển qua tab Events
click đúp chuột vào MouseDown
và MouseMove
. Mình sẽ sử dụng 4 sự kiện này cho chức năng kéo thả dòng.

Thực hiện tương tự cho gridView2
.
Một lưu ý nữa là: Ở gridControl1 và gridView1
chúng ta click chuột vào 2 sự kiện cho mỗi đứa thì ở gridControl2
và gridView2
ở các sự kiện đó, chúng ta nhấn chọn sự kiện đã tạo chứ không phải click đúp chuột. Vì 2 cái thằng này sẽ gọi chung một sự kiện tương ứng với từng loại. Ví dụ ở trên tên sự kiện là gridView1_MouseDown
, nếu thao tác click đúp chuột ở gridView2
thì nó sẽ tạo ra sự kiện khác là gridView2_MouseDown
, thực chất mình chỉ cần trõ tới gridView1_MouseDown
là được. Nhớ đánh dấu chỗ này.
Sau khi hoàn tất các thiết lập, trỡ lại form và nhấn F7 để thực hiện code cho các sự kiện đã tạo ra trên.
Như vậy là đã xong. Nếu thực hiện đủ các bước thì kết quả sẽ là như này. Quá dễ phải không ? Mặc dù nhìn như kiến bò chẳng hiểu gì hết :D . Kệ đi code ngon á :v
Cám ơn đã theo dõi bài viết, nhấn like và share nếu thấy hưu ích hoặc comment góp ý để mình có những bài viết tốt hơn. Chúc các bạn thành công !
HAPPY CODING !