다음을 통해 공유


방법: Windows Forms DataGridView 컨트롤에서 자동 생성된 열 제거

DataGridView 컨트롤이 데이터 원본의 데이터를 기반으로 해당 열을 자동 생성하도록 설정된 경우 선택적으로 특정 열을 생략할 수 있습니다. Columns 컬렉션에서 Remove 메서드를 호출하여 이 작업을 수행할 수 있습니다. 또는 Visible 속성을 false로 설정하여 보기에서 열을 숨길 수 있습니다. 이 기술은 특정 조건에서 숨겨진 열을 표시하려는 경우나 열의 데이터를 표시하지 않고 해당 데이터에 액세스해야 하는 경우에 유용합니다.

또 다른 방법은 기본 DataColumnColumnMapping 속성을 Hidden로 설정하여 열이 처음부터 자동으로 생성되지 않도록 하는 것입니다. DataGridView에게 자동 생성 중에 특정 데이터 열에 대한 열 생성을 건너뛰도록 지시합니다.

자동 생성된 열을 제거하려면

  • Columns 컬렉션의 Remove 메서드를 호출합니다.

    dataGridView1.AutoGenerateColumns = true;
    dataGridView1.DataSource = customersDataSet;
    dataGridView1.Columns.Remove("Fax");
    
    With dataGridView1
        .AutoGenerateColumns = True
        .DataSource = customersDataSet
        .Columns.Remove("Fax")
    End With
    

자동 생성된 열을 숨기려면

  • 열의 Visible 속성을 false로 설정합니다.

    dataGridView1.Columns["CustomerID"].Visible = false;
    
    dataGridView1.Columns("CustomerID").Visible = False
    

열이 자동으로 생성되지 않도록 하려면

  • ColumnMapping 데이터 소스의 DataColumn 속성을 Hidden로 설정합니다.

    // Assuming you have a DataTable with a column you want to exclude
    dataTable.Columns["SensitiveData"].ColumnMapping = MappingType.Hidden;
    
    ' Assuming you have a DataTable with a column you want to exclude
    dataTable.Columns("SensitiveData").ColumnMapping = MappingType.Hidden
    

예시

private void BindDataAndInitializeColumns()
{
    dataGridView1.AutoGenerateColumns = true;
    dataGridView1.DataSource = customersDataSet;
    dataGridView1.Columns.Remove("Fax");
    dataGridView1.Columns["CustomerID"].Visible = false;
}
Private Sub BindDataAndInitializeColumns()

    With dataGridView1
        .AutoGenerateColumns = True
        .DataSource = customersDataSet
        .Columns.Remove("Fax")
        .Columns("CustomerID").Visible = False
    End With

End Sub

코드 컴파일

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

  • FaxCustomerID 열이 포함된 테이블에 바인딩된 dataGridView1라는 DataGridView 컨트롤(예: Northwind 샘플 데이터베이스의 Customers 테이블).

  • SystemSystem.Windows.Forms 어셈블리에 대한 참조

참고하십시오