2009-09-04 41 views
8

Tôi đang làm việc trên máy khách WinForm có điều khiển DataGridView. Tôi nhận thấy người dùng phải nhấp một lần để chọn ô và một lần nữa để chỉnh sửa. Cách để thay đổi điều này thành một chế độ chỉnh sửa nhấp chuột là gì? Tôi nghĩ tôi đã từng thấy thứ như thế này trước đây nhưng không thể nhớ tên.DataGridView - "Cell Selection Style" - Chỉnh sửa ô

Trả lời

6

Vâng, tôi đã nhận thấy một vấn đề với EditMode.EditOnEnter
Nó những thành kiến ​​rất nhiều hành vi mặc định DataGriView, mà là khó chịu. Trong số những người khác, ô đã chỉnh sửa vẫn ở chế độ chỉnh sửa ngay cả khi phương thức EndEdit được gọi rõ ràng (bạn buộc phải bấm vào một điều khiển khác để làm cho ô dữ liệu bị mất tập trung.)

Đoạn mã sau hoạt động khá tốt vì nó làm cho bạn chỉnh sửa bằng cách nhấp duy nhất trên bất kỳ tế bào và kết thúc chỉnh sửa bằng cách nhấn enter hoặc nhấp chuột bên ngoài DGView (cũng giống như bạn sẽ làm gì trong hành vi mặc định)

ở đây bạn đi:

private void myDatagridView_MouseUp(object sender, MouseEventArgs e) 
    { 
     if (e.Button == MouseButtons.Left) 
     { 
      hitTestInfo = myDatagridView.HitTest(e.X, e.Y); 
      if (hitTestInfo.Type == DataGridViewHitTestType.Cell) 
       myDatagridView.BeginEdit(true); 
      else 
       myDatagridView.EndEdit(); 
     } 
    } 
15

Trong các thuộc tính DataGridView: EditMode -> EditOnEnter

Các vấn đề liên quan