Поделиться через


Практическое руководство. Удаление или сокрытие столбцов элемента управления DataGridView в Windows Forms

Обновлен: Ноябрь 2007

79zaexf1.alert_note(ru-ru,VS.90).gifПримечание.

Элемент управления DataGridView заменяет элемент управления DataGrid и расширяет его функциональные возможности; однако при необходимости элемент управления DataGrid можно сохранить для обратной совместимости и использования в будущем. Дополнительные сведения см. в разделе Различия элементов управления DataGridView и DataGrid в Windows Forms.

Можно программно удалить или скрыть столбцы в элементе управления Windows Forms DataGrid, используя свойства и методы объектов GridColumnStylesCollection и DataGridColumnStyle (которые являются членами класса DataGridTableStyle).

Удаленные или скрытые столбцы остаются в источнике данных, к которому привязана сетка, и доступ к ним можно получить с помощью программных средств. Эти столбцы не отражаются в элементе управления DataGrid.

79zaexf1.alert_note(ru-ru,VS.90).gifПримечание.

Если в приложении нет доступа к определенным столбцам данных, и их не требуется отображать в элементе управления DataGrid, возможно их не следует включать в источник данных.

Чтобы удалить столбец из элемента управления DataGrid программным способом, выполните следующие действия:

  1. В области объявлений формы объявите новый экземпляр класса DataGridTableStyle.

  2. Укажите в свойстве DataGridTableStyle.MappingName таблицу из источника данных, к которой требуется применить стиль. Предполагается, что свойство DataGrid.DataMember, используемое в следующем примере, уже задано.

  3. Добавьте новый объект DataGridTableStyle в коллекцию стилей таблиц элемента управления DataGrid.

  4. Вызовите метод RemoveAt коллекции DataGrid's GridColumnStyles, указав индекс столбца, который необходимо удалить.

    ' Declare a new DataGridTableStyle in the
    ' declarations area of your form.
    Dim ts As DataGridTableStyle = New DataGridTableStyle()
    
    Sub DeleteColumn()
       ' Set the DataGridTableStyle.MappingName property
       ' to the table in the data source to map to.
       ts.MappingName = DataGrid1.DataMember
    
       ' Add it to the datagrid's TableStyles collection
       DataGrid1.TableStyles.Add(ts)
    
       ' Delete the first column (index 0)
       DataGrid1.TableStyles(0).GridColumnStyles.RemoveAt(0)
    End Sub
    
    // Declare a new DataGridTableStyle in the
    // declarations area of your form.
    DataGridTableStyle ts = new DataGridTableStyle();
    
    private void deleteColumn()
    {
       // Set the DataGridTableStyle.MappingName property
       // to the table in the data source to map to.
       ts.MappingName = dataGrid1.DataMember;
    
       // Add it to the datagrid's TableStyles collection
       dataGrid1.TableStyles.Add(ts);
    
       // Delete the first column (index 0)
       dataGrid1.TableStyles[0].GridColumnStyles.RemoveAt(0);
    }
    

Чтобы скрыть столбец в элементе управления DataGrid программным способом, выполните следующие действия:

  1. В области объявлений формы объявите новый экземпляр класса DataGridTableStyle.

  2. Задайте для свойства MappingName элемента управления DataGridTableStyle таблицу в источнике данных, к которой необходимо применить стиль. Предполагается, что свойство DataGrid.DataMember, используемое в следующем примере кода, уже задано.

  3. Добавьте новый объект DataGridTableStyle в коллекцию стилей таблиц элемента управления DataGrid.

  4. Скройте столбец, присвоив свойству Width значение 0 и указав индекс скрываемого столбца.

    ' Declare a new DataGridTableStyle in the
    ' declarations area of your form.
    Dim ts As DataGridTableStyle = New DataGridTableStyle()
    
    Sub HideColumn()
       ' Set the DataGridTableStyle.MappingName property
       ' to the table in the data source to map to.
       ts.MappingName = DataGrid1.DataMember
    
       ' Add it to the datagrid's TableStyles collection
       DataGrid1.TableStyles.Add(ts)
    
       ' Hide the first column (index 0)
       DataGrid1.TableStyles(0).GridColumnStyles(0).Width = 0
    End Sub
    
    // Declare a new DataGridTableStyle in the
    // declarations area of your form.
    DataGridTableStyle ts = new DataGridTableStyle();
    
    private void hideColumn()
    {
       // Set the DataGridTableStyle.MappingName property
       // to the table in the data source to map to.
       ts.MappingName = dataGrid1.DataMember;
    
       // Add it to the datagrid's TableStyles collection
       dataGrid1.TableStyles.Add(ts);
    
       // Hide the first column (index 0)
       dataGrid1.TableStyles[0].GridColumnStyles[0].Width = 0;
    }
    

См. также

Задачи

Практическое руководство. Изменение данных, отображаемых во время выполнения, в элементе управления DataGrid в Windows Forms

Практическое руководство. Добавление таблиц и столбцов в элемент управления DataGrid в Windows Forms