2009-12-30 7 views
5

Tôi có một DataGridView có MultiSelect = true. Sau khi người dùng chọn các ô khác nhau từ các hàng khác nhau, làm thế nào tôi có thể nhận được giá trị của tất cả các ô đã chọn?Làm thế nào tôi có thể nhận được giá trị của tất cả các ô được chọn trong một DataGridView?

+0

Một DataGrid (được đề cập trong phần nội dung câu hỏi của bạn) không giống với DataGridView (trong tiêu đề và thẻ). –

+0

True ... My Bad. Tôi chỉ chỉnh sửa nó .. –

Trả lời

15

Bạn có thể lặp qua SelectedCells.

foreach (DataGridViewCell cell in dataGridView1.SelectedCells) 
{ 
    MessageBox.Show(cell.Value.ToString()); 
} 

Bạn chỉ yêu cầu giá trị, nhưng bạn cũng có thể muốn biết hàng và cột của ô nếu không giá trị có thể vô nghĩa. Bạn cũng có thể truy cập chúng trên đối tượng ô.

3

foreach -

DataGrid.SelectedCells 

Thông tin thêm về các tài sản SelectedCells có thể được tìm thấy tại http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.selectedcells.aspx

Bộ sưu tập SelectedCells là không hiệu quả với các lựa chọn lớn trong DataGridView. Có một phương pháp bạn có thể sử dụng để lấy số lượng ô được chọn. lặp lại dựa trên đó và nó sẽ nhanh hơn.

for (int i = 0; i < grid.GetCellCount(System.Windows.Forms.DataGridViewElementStates.Selected); i++) 
{ 
    string val = grid.SelectedCells[i].Value; 
} 
+0

Bạn có thể viết một ví dụ về mỗi cái không? –

+0

Nhập mã ví dụ cho bạn. Hãy chắc chắn xem xét phương thức GetCellCount. Nó sẽ rất quan trọng để biết. –