2011-02-07 7 views
5

Tôi có một DataGridView trong đó SelectionMode = FullRowSelect và MultiSelect = False.Chuyển đổi lựa chọn hàng DataGridView trong đó SelectionMode là FullRowSelect

Khi người dùng nhấp vào hàng, nó được chọn như mong đợi. Tuy nhiên, việc nhấp vào cùng một hàng một lần nữa sẽ không bỏ chọn hàng.

Cách chọn hàng được thực hiện để chuyển đổi giữa lựa chọn và không được chọn?

Trả lời

4

Theo như tôi biết không có chức năng hộp nào sẽ thực hiện việc này.

tôi quản lý để có được hiệu quả bạn đang yêu cầu với đoạn mã sau:

public partial class Form1 : Form 
{ 
    private bool selectionChanged; 

    public Form1() 
    {    
     InitializeComponent(); 
    } 

    private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) 
    { 
     if (!selectionChanged) 
     { 
      dataGridView1.ClearSelection(); 
      selectionChanged = true; 
     } 
     else 
     { 
      selectionChanged = false; 
     } 
    } 

    private void dataGridView1_SelectionChanged(object sender, EventArgs e) 
    { 
     selectionChanged = true; 
    } 

} 

Đó sử dụng của DataGridView SelectionChanged và CellClick sự kiện, cùng với một biến cấp lớp giữ trạng thái của vùng chọn.

+0

Điều đó hoạt động tốt, cảm ơn. Tôi đã sử dụng một biến thể nhỏ này trong một lớp mở rộng DataGridView và đăng ký cho các sự kiện bằng cách ghi đè InitLayout. –