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?
Trả lời
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 ô.
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;
}
Bạn có thể viết một ví dụ về mỗi cái không? –
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. –
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ẻ). –
True ... My Bad. Tôi chỉ chỉnh sửa nó .. –