2009-12-31 6 views
5

Tôi đã cố gắng để tìm hiểu làm thế nào để chọn tất cả các tế bào dưới cột với 'chuột nhấn chuột phải + Menu + Chọn Cột này ...DataGridView: Cách chọn toàn bộ Cột và bỏ chọn mọi thứ khác?

MSDN không giúp ích nhiều ...

tôi nhận được lỗi này khi tôi cố gắng để thay đổi chế độ lựa chọn:

DataGridView control's SelectionMode cannot be set to FullColumnSelect while it has a column with SortMode set to DataGridViewColumnSortMode.Automatic. 

Cảm ơn, Y_Y

+0

Tôi giả sử bạn đang sử dụng WinForms? – SLaks

+0

Có Tôi đang sử dụng winforms ... –

+0

DataModeView của DataGridView là gì? – SLaks

Trả lời

4

Vòng qua các ô trong cột và thiết lập thuộc tính Selected của họ là true.
Nghe có vẻ khủng khiếp, nhưng tôi tin rằng đó là cách duy nhất để chọn toàn bộ cột và giữ tự động phân loại.

Ví dụ:

grid.ClearSelection(); 
for(int r = 0; r < grid.RowCount; r++) 
    grid[columnIndex, r].Selected = true; 
+0

Nop ... grid.ClearSelection(); hoạt động nhưng dòng thứ hai không ... –

+0

Làm cách nào để thoát khỏi Tự động sắp xếp? –

+0

Đặt thuộc tính 'SortMode' thành' false', như trong câu trả lời của David. – SLaks

9

Xin lỗi nó đã quá lâu - Tôi muốn kiểm tra trước khi tôi trả lời, vì vậy tôi ngồi phịch này vào Visual Studio để thử nghiệm đầu tiên.

tôi phải làm điều này trong tôi để làm cho nó làm việc:

foreach (DataGridViewColumn c in dataGridView1.Columns) 
{ 
    c.SortMode = DataGridViewColumnSortMode.NotSortable; 
    c.Selected = false; 
} 
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullColumnSelect; 
dataGridView1.Columns[0].Selected = true; 
+0

Bạn cũng có thể gọi phương thức 'ClearSelection'. – SLaks

+0

Tôi có phải chạy vòng lặp đó mỗi lần tôi muốn chọn một Cột không? hoặc là nó về thời gian gọi? –

+0

Miễn là không có gì khác thay đổi 'SortMode', bạn chỉ cần thực hiện điều đó một lần. – SLaks

1

Bạn cần 3 điều.

  1. Xóa tất cả các hàng và ô đã chọn.
  2. Xóa chế độ sắp xếp của mọi cột thành Không thể sắp xếp. Sự kiện bấm mặc định được sắp xếp, bây giờ nó sẽ được chọn.
  3. Đặt chế độ chọn thành cột.

Cuối cùng, bạn có thể chọn cột đầu tiên để hiển thị cho người dùng chế độ chọn. Điều này chỉ phải được thực hiện một lần. Lần đầu tiên bạn tải biểu mẫu hoặc chế độ xem dữ liệu của mình.

// Clear all selected cells or rows in the DGV. 
dataGridView1.ClearSelection(); 

// Make every column not sortable. 
for (int i=0; i < dataGridView1.Columns.Count; i++) 
    dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable; 

// Set selection mode to Column. 
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullColumnSelect; 

// In case you want the first column selected. 
if (dataGridView1.Columns.Count > 0) // Check if you have at least one column. 
    dataGridView1.Columns[0].Selected = true;