본문 바로가기
[ Program ]/C#

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

by 관이119 2014. 8. 22.



출처 - http://msdn.microsoft.com/ko-kr/library/x8x9zk5a(v=vs.110).aspx

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

.NET Framework 4.5
이 항목은 아직 평가되지 않았습니다.- 이 항목 평가

 

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

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

  • SelectedCells 속성을 사용합니다.

    참고 참고

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

    C#
    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로 설정해야 합니다.

    C#
    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로 설정해야 합니다.

    C#
    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 컨트롤의 크기를 조정하는 최선의 방법을 참조하십시오.

댓글