Nasıl yapılır: Windows Forms DataGridView Denetiminde Seçili Hücre, Satır ve Sütunları Alma
Bir denetimden seçili hücreleri, satırları veya sütunları, DataGridView ilgili özellikleri kullanarak alabilirsiniz: SelectedCells , SelectedRows ve SelectedColumns . Aşağıdaki yordamlarda, seçili hücreleri alacak ve satır ve sütun dizinlerini bir içinde görüntüleyecek MessageBox .
Bir DataGridView denetiminde seçili hücreleri almak için
Özelliğini kullanın SelectedCells .
Not
AreAllCellsSelectedOlası çok sayıda hücreyi göstermeyi önlemek için yöntemini kullanın.
private void selectedCellsButton_Click(object sender, System.EventArgs e) { Int32 selectedCellCount = dataGridView1.GetCellCount(DataGridViewElementStates.Selected); if (selectedCellCount > 0) { if (dataGridView1.AreAllCellsSelected(true)) { MessageBox.Show("All cells are selected", "Selected Cells"); } else { System.Text.StringBuilder sb = new System.Text.StringBuilder(); for (int i = 0; i < selectedCellCount; i++) { sb.Append("Row: "); sb.Append(dataGridView1.SelectedCells[i].RowIndex .ToString()); sb.Append(", Column: "); sb.Append(dataGridView1.SelectedCells[i].ColumnIndex .ToString()); sb.Append(Environment.NewLine); } sb.Append("Total: " + selectedCellCount.ToString()); MessageBox.Show(sb.ToString(), "Selected Cells"); } } }Private Sub selectedCellsButton_Click( _ ByVal sender As Object, ByVal e As System.EventArgs) _ Handles selectedCellsButton.Click Dim selectedCellCount As Integer = _ dataGridView1.GetCellCount(DataGridViewElementStates.Selected) If selectedCellCount > 0 Then If dataGridView1.AreAllCellsSelected(True) Then MessageBox.Show("All cells are selected", "Selected Cells") Else Dim sb As New System.Text.StringBuilder() Dim i As Integer For i = 0 To selectedCellCount - 1 sb.Append("Row: ") sb.Append(dataGridView1.SelectedCells(i).RowIndex _ .ToString()) sb.Append(", Column: ") sb.Append(dataGridView1.SelectedCells(i).ColumnIndex _ .ToString()) sb.Append(Environment.NewLine) Next i sb.Append("Total: " + selectedCellCount.ToString()) MessageBox.Show(sb.ToString(), "Selected Cells") End If End If End Sub
Bir DataGridView denetiminde seçili satırları almak için
Özelliğini kullanın SelectedRows . Kullanıcıların satır seçmesini sağlamak için, SelectionMode özelliğini veya olarak ayarlamanız gerekir FullRowSelectRowHeaderSelect .
private void selectedRowsButton_Click(object sender, System.EventArgs e) { Int32 selectedRowCount = dataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected); if (selectedRowCount > 0) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); for (int i = 0; i < selectedRowCount; i++) { sb.Append("Row: "); sb.Append(dataGridView1.SelectedRows[i].Index.ToString()); sb.Append(Environment.NewLine); } sb.Append("Total: " + selectedRowCount.ToString()); MessageBox.Show(sb.ToString(), "Selected Rows"); } }Private Sub selectedRowsButton_Click( _ ByVal sender As Object, ByVal e As System.EventArgs) _ Handles selectedRowsButton.Click Dim selectedRowCount As Integer = _ dataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected) If selectedRowCount > 0 Then Dim sb As New System.Text.StringBuilder() Dim i As Integer For i = 0 To selectedRowCount - 1 sb.Append("Row: ") sb.Append(dataGridView1.SelectedRows(i).Index.ToString()) sb.Append(Environment.NewLine) Next i sb.Append("Total: " + selectedRowCount.ToString()) MessageBox.Show(sb.ToString(), "Selected Rows") End If End Sub
Bir DataGridView denetiminde seçili sütunları almak için
Özelliğini kullanın SelectedColumns . Kullanıcıların sütun seçmesini sağlamak için, SelectionMode özelliğini veya olarak ayarlamanız gerekir FullColumnSelectColumnHeaderSelect .
private void selectedColumnsButton_Click(object sender, System.EventArgs e) { Int32 selectedColumnCount = dataGridView1.Columns .GetColumnCount(DataGridViewElementStates.Selected); if (selectedColumnCount > 0) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); for (int i = 0; i < selectedColumnCount; i++) { sb.Append("Column: "); sb.Append(dataGridView1.SelectedColumns[i].Index .ToString()); sb.Append(Environment.NewLine); } sb.Append("Total: " + selectedColumnCount.ToString()); MessageBox.Show(sb.ToString(), "Selected Columns"); } }Private Sub selectedColumnsButton_Click( _ ByVal sender As Object, ByVal e As System.EventArgs) _ Handles selectedColumnsButton.Click Dim selectedColumnCount As Integer = dataGridView1.Columns _ .GetColumnCount(DataGridViewElementStates.Selected) If selectedColumnCount > 0 Then Dim sb As New System.Text.StringBuilder() Dim i As Integer For i = 0 To selectedColumnCount - 1 sb.Append("Column: ") sb.Append(dataGridView1.SelectedColumns(i).Index.ToString()) sb.Append(Environment.NewLine) Next i sb.Append("Total: " + selectedColumnCount.ToString()) MessageBox.Show(sb.ToString(), "Selected Columns") End If End Sub
Kod Derleniyor
Bu örnek şunları gerektirir:
Button
selectedCellsButtonselectedRowsButtonselectedColumnsButtonher biri, eklenen olaya yönelik işleyiciler içeren,, ve adlı denetimler Click .DataGridViewAdlı bir denetim
dataGridView1.System, System.Windows.Forms Ve System.Text derlemelerinin başvuruları.
Güçlü Programlama
Bu konu başlığı altında açıklanan koleksiyonlar, çok sayıda hücre, satır veya sütun seçildiğinde verimli bir şekilde gerçekleştirmez. bu koleksiyonları büyük miktarda verilerle kullanma hakkında daha fazla bilgi için bkz. Windows Forms DataGridView denetimini ölçeklendirmek için en iyi uygulamalar.