다음을 통해 공유


방법: Windows Forms DataGridView 컨트롤에서 선택한 셀, 행 및 열 가져오기

SelectedCells, SelectedRowsSelectedColumns 중 해당하는 속성을 사용하여 DataGridView 컨트롤에서 선택한 셀, 행 또는 열을 가져올 수 있습니다. 다음 절차에서는 선택한 셀을 가져온 다음 이 셀의 행 및 열 인덱스를 MessageBox에 표시합니다.

DataGridView 컨트롤에서 선택한 셀을 가져오려면

  • SelectedCells 속성을 사용합니다.

    참고

    너무 많은 셀을 표시하지 않도록 AreAllCellsSelected 메서드를 사용합니다.

    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
    
    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");
            }
        }
    }
    

DataGridView 컨트롤에서 선택한 행을 가져오려면

  • SelectedRows 속성을 사용합니다. 사용자가 행을 선택할 수 있게 하려면 SelectionMode 속성을 FullRowSelect 또는 RowHeaderSelect로 설정해야 합니다.

    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
    
    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");
        }
    }
    

DataGridView 컨트롤에서 선택한 열을 가져오려면

  • SelectedColumns 속성을 사용합니다. 사용자가 열을 선택할 수 있게 하려면 SelectionMode 속성을 FullColumnSelect 또는 ColumnHeaderSelect로 설정해야 합니다.

    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
    
    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");
        }
    }
    

코드 컴파일

이 예제에는 다음 사항이 필요합니다.

강력한 프로그래밍

이 항목에서 설명된 컬렉션은 많은 수의 셀, 행 또는 열을 선택한 경우 효율적으로 수행되지 않습니다. 이러한 컬렉션을 많은 양의 데이터에 사용하는 방법은 Windows Forms DataGridView 컨트롤의 크기를 조정하는 최선의 방법을 참조하십시오.

참고 항목

참조

DataGridView

SelectionMode

AreAllCellsSelected

SelectedCells

SelectedRows

SelectedColumns

기타 리소스

Windows Forms DataGridView 컨트롤에서 선택 및 클립보드 사용