방법: Windows Forms DataGridView 컨트롤에서 선택한 셀, 행 및 열 가져오기
해당 속성인 SelectedCells, SelectedRows 및 SelectedColumns를 사용하여 DataGridView 컨트롤에서 선택한 셀, 행 또는 열을 가져올 수 있습니다. 다음 프로시저에서는 선택한 셀을 가져와 행 및 열 인덱스를 MessageBox에 표시합니다.
DataGridView 컨트롤에서 선택한 셀을 가져오려면
SelectedCells 속성을 사용합니다.
참고
잠재적으로 많은 수의 셀이 표시되지 않도록 하려면 AreAllCellsSelected 메서드를 사용합니다.
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
DataGridView 컨트롤에서 선택한 행을 가져오려면
SelectedRows 속성을 사용합니다. 사용자가 행을 선택할 수 있도록 하려면 SelectionMode 속성을 FullRowSelect 또는 RowHeaderSelect로 설정해야 합니다.
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
DataGridView 컨트롤에서 선택한 열을 가져오려면
SelectedColumns 속성을 사용합니다. 사용자가 열을 선택할 수 있도록 하려면 SelectionMode 속성을 FullColumnSelect 또는 ColumnHeaderSelect로 설정해야 합니다.
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
코드 컴파일
이 예제에는 다음 사항이 필요합니다.
각각 연결된 Click 이벤트에 대한 처리기가 있는
selectedCellsButton
,selectedRowsButton
및selectedColumnsButton
이라는 이름의 Button 컨트롤.dataGridView1
이라는 DataGridView 컨트롤System, System.Windows.Forms 및 System.Text 어셈블리에 대한 참조
강력한 프로그래밍
이 토픽에 설명된 컬렉션은 셀, 행 또는 열이 많은 경우 효율적으로 수행되지 않습니다. 대량의 데이터에 이러한 컬렉션을 사용하는 방법에 대한 자세한 내용은 Windows Forms DataGridView 컨트롤의 크기 조정에 대한 모범 사례를 참조하세요.
참고 항목
.NET Desktop feedback
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기