2012-07-02 15 views
8
private void dgv_CellDoubleClick(object sender, DataGridViewCellEventArgs e) 
{ 
foreach (DataGridViewRow r in dgv.Rows) r.Visible = false; 
} 

Mã này hoạt động, nhưng cũng hoạt động nếu ColumnHeaders (không chỉ ô) được nhấp đúp?
Tôi muốn chạy nó chỉ khi một ô được nhấp đúp.
CellDoubleClick có nghĩa là CellDoubleClick chứ không phải HeaderDoubleClick.Làm thế nào để chạy một mã chỉ khi một ô, không phải là một tiêu đề, trong DataGridView là doubleClicked?

Trả lời

18
private void dgv_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { 
      if (e.RowIndex != -1) { 
       //do work 
      } 
     } 
+0

Nhờ mọi người. Tất cả các giải pháp hoạt động. Nhưng, có thể ai đó có thể giải thích, thì mục đích của xử lý ColumnHeaderDoubleClick là gì nếu nó chạy trên một trình xử lý khác? Có vẻ ngu ngốc. – Alice

+1

Trong câu hỏi của bạn, bạn đã nói rằng bạn đang sử dụng CellDoubleClick. Vì RowHeader cũng là một ô, sự kiện này sẽ kích hoạt. Nếu bạn đã sử dụng ColumnHeaderDoubleClick sự kiện này sẽ chỉ kích hoạt khi nhấp đúp vào tiêu đề cột. Tôi hy vọng tôi đã đủ rõ ràng. – Vale

+0

Ô nên là Ô, Tiêu đề phải là Tiêu đề. Cảm ơn, Dù sao đi nữa. – Alice

2

Bạn có thể sử dụng DataGridViewCellEventArgs.RowIndex để kiểm tra xem tiêu đề được nhấp hay bất kỳ ô nào từ các hàng được nhấp vào.

3

Bạn có thể kiểm tra xem e.RowIndex là -1, có nghĩa là sự kiện đã xảy ra trên hàng tiêu đề.

1

Không cách sạch để làm nhưng bạn có thể đạt được nó như thế này

private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e) 
{ 
    if (((System.Windows.Forms.DataGridView)(sender)).CurrentCell != null) 
    { 
     //Do what you want here................ 
    } 
} 
+1

Câu hỏi của bạn về @Vale về mục đích của ColumnHeaderDoubleClick là gì? Một ví dụ tôi có thể nghĩ về Nhấp đúp để sắp xếp Lưới theo Cột – HatSoft

+0

Sắp xếp được nhấp vào chứ không phải DoubleClick. Trong mọi trường hợp, CellDoubleClick shuld là CellDoubleClick và HeaderDoubleClick nên là HeaderDoubleClick. Cảm ơn, Dù sao đi nữa. – Alice

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