Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Classe DataGridViewColumn

Representa uma coluna em uma DataGridView controle.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (em System.Windows.Forms.dll)

public class DataGridViewColumn : DataGridViewBand, 
	IComponent, IDisposable

O tipo DataGridViewColumn expõe os membros a seguir.

  NomeDescrição
Método públicoDataGridViewColumn()Inicializa uma nova instância da DataGridViewColumn classe para o estado padrão.
Método públicoDataGridViewColumn(DataGridViewCell)Inicializa uma nova instância da DataGridViewColumn usando um existente de classe DataGridViewCell como um modelo.
Superior

  NomeDescrição
Propriedade públicaAutoSizeModeObtém ou define o modo pelo qual a coluna ajusta automaticamente sua largura.
Propriedade públicaCellTemplateObtém ou define o modelo usado para criar novas células.
Propriedade públicaCellTypeObtém o tipo de tempo de execução do modelo de célula.
Propriedade públicaContextMenuStripObtém ou define o menu de atalho para a coluna. (Substitui DataGridViewBand.ContextMenuStrip.)
Propriedade públicaDataGridViewObtém o DataGridView controle associado a esse elemento. (Herdado de DataGridViewElement.)
Propriedade públicaDataPropertyNameObtém ou define o nome da coluna propriedade ou banco de dados da fonte de dados ao qual o DataGridViewColumn está vinculado.
Propriedade públicaDefaultCellStyleObtém ou define o estilo de célula padrão da coluna. (Substitui DataGridViewBand.DefaultCellStyle.)
Propriedade públicaDefaultHeaderCellTypeObtém ou define o tipo de tempo de execução de célula do cabeçalho padrão. (Herdado de DataGridViewBand.)
Propriedade públicaDisplayedObtém um valor indicando se a faixa (DataGridViewBand) é exibida atualmente na tela. (Herdado de DataGridViewBand.)
Propriedade públicaDisplayIndexObtém ou define a ordem de exibição da coluna relativo para as colunas exibidas atualmente.
Propriedade públicaDividerWidthObtém ou define a largura, em pixels, do divisor de coluna.
Propriedade públicaFillWeightObtém ou define um valor que representa a largura da coluna quando ele estiver no modo de preenchimento em relação às larguras das outras colunas de modo de preenchimento no controle.
Propriedade públicaFrozenObtém ou define um valor indicando se uma coluna será movida quando o usuário rola a DataGridView controlar horizontalmente. (Substitui DataGridViewBand.Frozen.)
Propriedade públicaHasDefaultCellStyleObtém um valor indicando se a DefaultCellStyle propriedade foi definida. (Herdado de DataGridViewBand.)
Propriedade públicaHeaderCellObtém ou define o DataGridViewColumnHeaderCell que representa o cabeçalho de coluna.
Propriedade protegidaHeaderCellCoreObtém ou define a célula de cabeçalho da DataGridViewBand. (Herdado de DataGridViewBand.)
Propriedade públicaHeaderTextObtém ou define o texto da legenda na célula do cabeçalho da coluna.
Propriedade públicaIndexObtém a posição relativa da faixa dentro do DataGridView controle. (Herdado de DataGridViewBand.)
Propriedade públicaInheritedAutoSizeModeObtém o modo de dimensionamento em vigor para a coluna.
Propriedade públicaInheritedStyleObtém o estilo de célula aplicado no momento para a coluna. (Substitui DataGridViewBand.InheritedStyle.)
Propriedade públicaIsDataBoundObtém um valor indicando se a coluna está vinculada a uma fonte de dados.
Propriedade protegidaIsRowObtém um valor indicando se a faixa representa uma linha. (Herdado de DataGridViewBand.)
Propriedade públicaMinimumWidthObtém ou define a largura mínima, em pixels, da coluna.
Propriedade públicaNameObtém ou define o nome da coluna.
Propriedade públicaReadOnlyObtém ou define um valor indicando se o usuário pode editar as células da coluna. (Substitui DataGridViewBand.ReadOnly.)
Propriedade públicaResizableObtém ou define um valor indicando se a coluna é redimensionável. (Substitui DataGridViewBand.Resizable.)
Propriedade públicaSelectedObtém ou define um valor que indica se a banda está em um estado de interface (UI) do usuário selecionado. (Herdado de DataGridViewBand.)
Propriedade públicaSiteInfraestrutura. Obtém ou define o site da coluna.
Propriedade públicaSortModeObtém ou define o modo de classificação da coluna.
Propriedade públicaStateObtém o estado do elemento de interface (UI) do usuário. (Herdado de DataGridViewElement.)
Propriedade públicaTagObtém ou define o objeto que contém os dados para associar com a faixa. (Herdado de DataGridViewBand.)
Propriedade públicaToolTipTextObtém ou define o texto usado para dicas de ferramentas.
Propriedade públicaValueTypeObtém ou define o tipo de dados dos valores nas células da coluna.
Propriedade públicaVisibleObtém ou define um valor indicando se a coluna é visível. (Substitui DataGridViewBand.Visible.)
Propriedade públicaWidthObtém ou define a largura atual da coluna.
Superior

  NomeDescrição
Método públicoCloneCria uma cópia exata desta faixa. (Substitui DataGridViewBand.Clone().)
Método públicoDispose()Libera todos os recursos usados pela DataGridViewBand. (Herdado de DataGridViewBand.)
Método protegidoDispose(Boolean)Libera os recursos não gerenciados usados pela DataGridViewBand e, opcionalmente, libera os recursos gerenciados. (Substitui DataGridViewBand.Dispose(Boolean).)
Método públicoEquals(Object) Verifica se o objeto especificado é igual ao objeto atual. (Herdado de Object.)
Método protegidoFinalizeLibera os recursos associados com a banda. (Herdado de DataGridViewBand.)
Método públicoGetHashCodeServe como a função de hash padrão. (Herdado de Object.)
Método públicoGetPreferredWidthCalcula a ideal largura da coluna com base nos critérios especificados.
Método públicoGetType Obtém o Type da instância atual. (Herdado de Object.)
Método protegidoMemberwiseCloneCria uma cópia superficial do Object atual. (Herdado de Object.)
Método protegidoOnDataGridViewChangedChamado quando a banda está associada a uma outra DataGridView. (Herdado de DataGridViewBand.)
Método protegidoRaiseCellClickGera o evento DataGridView.CellClick. (Herdado de DataGridViewElement.)
Método protegidoRaiseCellContentClickGera o evento DataGridView.CellContentClick. (Herdado de DataGridViewElement.)
Método protegidoRaiseCellContentDoubleClickGera o evento DataGridView.CellContentDoubleClick. (Herdado de DataGridViewElement.)
Método protegidoRaiseCellValueChangedGera o evento DataGridView.CellValueChanged. (Herdado de DataGridViewElement.)
Método protegidoRaiseDataErrorGera o evento DataGridView.DataError. (Herdado de DataGridViewElement.)
Método protegidoRaiseMouseWheelGera o evento Control.MouseWheel. (Herdado de DataGridViewElement.)
Método públicoToStringObtém uma seqüência de caracteres que descreve a coluna. (Substitui DataGridViewBand.ToString().)
Superior

  NomeDescrição
Evento públicoDisposedOcorre quando o DataGridViewColumn é descartado.
Superior

O DataGridViewColumn classe representa uma coluna lógica em um DataGridView controle. Você pode recuperar colunas até o Columns coleção do controle.

Ao contrário de um DataGridViewRow, que contém a coleção real de células em uma DataGridView, DataGridViewColumn é usado principalmente para ajustar a aparência e comportamento da interface do usuário (UI), coluna, como o estilo de célula e a largura da coluna. Para obter mais informações sobre estilos de célula, consulte Estilos de célula no controle DataGridView dos Windows Forms.

Tipos que derivam da DataGridViewColumn geralmente inicializa o CellTemplate derivado de propriedade para uma nova instância de um tipo relacionado a DataGridViewCell classe. As propriedades de coluna que se relacionam com a aparência ou comportamento de células individuais são invólucros para as propriedades correspondentes do que a célula do modelo. Alterando uma dessas propriedades na coluna automaticamente altera o valor no modelo de célula e em todas as células na coluna. Para substituir o valor especificado para células individuais, defina os valores das células, depois de definir o valor da coluna.

Observações para herdeiros

Quando você deriva de DataGridViewColumn e adicionar novas propriedades à classe derivada, certifique-se de substituir o Clone método para copiar as novas propriedades durante operações de clonagem. Você também deve chamar a classe base Clone método para que as propriedades da classe base são copiadas para a nova célula.

O exemplo de código a seguir cria um formulário do Windows com um DataGridView e um conjunto de botões. Cada rótulo do botão descreve uma operação relacionada a uma DataGridViewColumn propriedade, como, por exemplo, trocar a coluna Nome e sobrenome (usando o DisplayIndex propriedade) ou alterar o texto de um cabeçalho de coluna (usando o HeaderText propriedade). Clicar em um botão altera a propriedade associada da DataGridViewColumn.


using System.Windows.Forms;
using System;
using System.Drawing;

public class DataGridViewColumnDemo : Form
{
    #region "set up form"
    public DataGridViewColumnDemo()
    {
        InitializeComponent();

        AddButton(Button1, "Reset",
            new EventHandler(ResetToDisorder));
        AddButton(Button2, "Change Column 3 Header",
            new EventHandler(ChangeColumn3Header));
        AddButton(Button3, "Change Meatloaf Recipe",
            new EventHandler(ChangeMeatloafRecipe));
        AddAdditionalButtons();

        InitializeDataGridView();
    }

    DataGridView dataGridView;
    Button Button1 = new Button();
    Button Button2 = new Button();
    Button Button3 = new Button();
    Button Button4 = new Button();
    Button Button5 = new Button();
    Button Button6 = new Button();
    Button Button7 = new Button();
    Button Button8 = new Button();
    Button Button9 = new Button();
    Button Button10 = new Button();
    FlowLayoutPanel FlowLayoutPanel1 = new FlowLayoutPanel();

    private void InitializeComponent()
    {
        FlowLayoutPanel1.Location = new Point(454, 0);
        FlowLayoutPanel1.AutoSize = true;
        FlowLayoutPanel1.FlowDirection = FlowDirection.TopDown;
        FlowLayoutPanel1.Name = "flowlayoutpanel";
        ClientSize = new System.Drawing.Size(614, 360);
        Controls.Add(this.FlowLayoutPanel1);
        Text = this.GetType().Name;
        AutoSize = true;
    }
    #endregion

    #region "set up DataGridView"

    private string thirdColumnHeader = "Main Ingredients";
    private string boringMeatloaf = "ground beef";
    private string boringMeatloafRanking = "*";
    private bool boringRecipe;
    private bool shortMode;

    private void InitializeDataGridView()
    {
        dataGridView = new System.Windows.Forms.DataGridView();
        Controls.Add(dataGridView);
        dataGridView.Size = new Size(300, 200);

        // Create an unbound DataGridView by declaring a
        // column count.
        dataGridView.ColumnCount = 4;
        AdjustDataGridViewSizing();

        // Set the column header style.
        DataGridViewCellStyle columnHeaderStyle =
            new DataGridViewCellStyle();
        columnHeaderStyle.BackColor = Color.Aqua;
        columnHeaderStyle.Font =
            new Font("Verdana", 10, FontStyle.Bold);
        dataGridView.ColumnHeadersDefaultCellStyle =
            columnHeaderStyle;

        // Set the column header names.
        dataGridView.Columns[0].Name = "Recipe";
        dataGridView.Columns[1].Name = "Category";
        dataGridView.Columns[2].Name = thirdColumnHeader;
        dataGridView.Columns[3].Name = "Rating";

        PostColumnCreation();

        // Populate the rows.
        string[] row1 = new string[]{"Meatloaf", 
                                        "Main Dish", boringMeatloaf, boringMeatloafRanking};
        string[] row2 = new string[]{"Key Lime Pie", 
                                        "Dessert", "lime juice, evaporated milk", "****"};
        string[] row3 = new string[]{"Orange-Salsa Pork Chops", 
                                        "Main Dish", "pork chops, salsa, orange juice", "****"};
        string[] row4 = new string[]{"Black Bean and Rice Salad", 
                                        "Salad", "black beans, brown rice", "****"};
        string[] row5 = new string[]{"Chocolate Cheesecake", 
                                        "Dessert", "cream cheese", "***"};
        string[] row6 = new string[]{"Black Bean Dip", "Appetizer",
                                        "black beans, sour cream", "***"};
        object[] rows = new object[] { row1, row2, row3, row4, row5, row6 };

        foreach (string[] rowArray in rows)
        {
            dataGridView.Rows.Add(rowArray);
        }

        shortMode = false;
        boringRecipe = true;
    }

    private void AddButton(Button button, string buttonLabel,
        EventHandler handler)
    {
        FlowLayoutPanel1.Controls.Add(button);
        button.TabIndex = FlowLayoutPanel1.Controls.Count;
        button.Text = buttonLabel;
        button.AutoSize = true;
        button.Click += handler;
    }

    private void ResetToDisorder(object sender, System.EventArgs e)
    {
        Controls.Remove(dataGridView);
        dataGridView.Dispose();
        InitializeDataGridView();
    }

    private void ChangeColumn3Header(object sender,
        System.EventArgs e)
    {
        Toggle(ref shortMode);
        if (shortMode)
        { dataGridView.Columns[2].HeaderText = "S"; }
        else
        { dataGridView.Columns[2].HeaderText = thirdColumnHeader; }
    }

    private static void Toggle(ref bool toggleThis)
    {
        toggleThis = !toggleThis;
    }

    private void ChangeMeatloafRecipe(object sender,
        System.EventArgs e)
    {
        Toggle(ref boringRecipe);
        if (boringRecipe)
        {
            SetMeatloaf(boringMeatloaf, boringMeatloafRanking);
        }
        else
        {
            string greatMeatloafRecipe =
                "1 lb. lean ground beef, " +
                "1/2 cup bread crumbs, 1/4 cup ketchup," +
                "1/3 tsp onion powder, " +
                "1 clove of garlic, 1/2 pack onion soup mix " +
                " dash of your favorite BBQ Sauce";
            SetMeatloaf(greatMeatloafRecipe, "***");
        }
    }

    private void SetMeatloaf(string recipe, string rating)
    {
        dataGridView.Rows[0].Cells[2].Value = recipe;
        dataGridView.Rows[0].Cells[3].Value = rating;
    }
    #endregion

    #region "demonstration code"
    private void PostColumnCreation()
    {
        AddContextLabel();
        AddCriteriaLabel();
        CustomizeCellsInThirdColumn();
        AddContextMenu();
        SetDefaultCellInFirstColumn();
        ToolTips();

        dataGridView.CellMouseEnter +=
            dataGridView_CellMouseEnter;
        dataGridView.AutoSizeColumnModeChanged +=
            dataGridView_AutoSizeColumnModeChanged;
    }

    private string criteriaLabel = "Column 3 sizing criteria: ";
    private void AddCriteriaLabel()
    {
        AddLabelToPanelIfNotAlreadyThere(criteriaLabel,
            criteriaLabel +
            dataGridView.Columns[2].AutoSizeMode.ToString() +
            ".");
    }

    private void AddContextLabel()
    {
        string labelName = "label";
        AddLabelToPanelIfNotAlreadyThere(labelName,
            "Use shortcut menu to change cell color.");
    }

    private void AddLabelToPanelIfNotAlreadyThere(
        string labelName, string labelText)
    {
        Label label;
        if (FlowLayoutPanel1.Controls[labelName] == null)
        {
            label = new Label();
            label.AutoSize = true;
            label.Name = labelName;
            label.BackColor = Color.Bisque;
            FlowLayoutPanel1.Controls.Add(label);
        }
        else
        {
            label = (Label)FlowLayoutPanel1.Controls[labelName];
        }
        label.Text = labelText;
    }

    private void CustomizeCellsInThirdColumn()
    {
        int thirdColumn = 2;
        DataGridViewColumn column =
            dataGridView.Columns[thirdColumn];
        DataGridViewCell cell = new DataGridViewTextBoxCell();

        cell.Style.BackColor = Color.Wheat;
        column.CellTemplate = cell;
    }

    ToolStripMenuItem toolStripItem1 = new ToolStripMenuItem();

    private void AddContextMenu()
    {
        toolStripItem1.Text = "Redden";
        toolStripItem1.Click += new EventHandler(toolStripItem1_Click);
        ContextMenuStrip strip = new ContextMenuStrip();
        foreach (DataGridViewColumn column in dataGridView.Columns)
        {

            column.ContextMenuStrip = strip;
            column.ContextMenuStrip.Items.Add(toolStripItem1);
        }
    }

    private DataGridViewCellEventArgs mouseLocation;

    // Change the cell's color.
    private void toolStripItem1_Click(object sender, EventArgs args)
    {
        dataGridView.Rows[mouseLocation.RowIndex]
            .Cells[mouseLocation.ColumnIndex].Style.BackColor
            = Color.Red;
    }

    // Deal with hovering over a cell.
    private void dataGridView_CellMouseEnter(object sender,
        DataGridViewCellEventArgs location)
    {
        mouseLocation = location;
    }

    private void SetDefaultCellInFirstColumn()
    {
        DataGridViewColumn firstColumn = dataGridView.Columns[0];
        DataGridViewCellStyle cellStyle =
            new DataGridViewCellStyle();
        cellStyle.BackColor = Color.Thistle;

        firstColumn.DefaultCellStyle = cellStyle;
    }


    private void ToolTips()
    {
        DataGridViewColumn firstColumn = dataGridView.Columns[0];
        DataGridViewColumn thirdColumn = dataGridView.Columns[2];
        firstColumn.ToolTipText =
            "This column uses a default cell.";
        thirdColumn.ToolTipText =
            "This column uses a template cell." +
            " Style changes to one cell apply to all cells.";
    }

    private void AddAdditionalButtons()
    {
        AddButton(Button4, "Set Minimum Width of Column Two",
            new EventHandler(Button4_Click));
        AddButton(Button5, "Set Width of Column One",
            new EventHandler(Button5_Click));
        AddButton(Button6, "Autosize Third Column",
            new EventHandler(Button6_Click));
        AddButton(Button7, "Add Thick Vertical Edge",
            new EventHandler(Button7_Click));
        AddButton(Button8, "Style and Number Columns",
            new EventHandler(Button8_Click));
        AddButton(Button9, "Change Column Header Text",
            new EventHandler(Button9_Click));
        AddButton(Button10, "Swap First and Last Columns",
            new EventHandler(Button10_Click));
    }

    private void AdjustDataGridViewSizing()
    {
        dataGridView.ColumnHeadersHeightSizeMode = 
            DataGridViewColumnHeadersHeightSizeMode.AutoSize;
    }

    //Set the minimum width.
    private void Button4_Click(object sender,
        System.EventArgs e)
    {
        DataGridViewColumn column = dataGridView.Columns[1];
        column.MinimumWidth = 40;
    }

    // Set the width.
    private void Button5_Click(object sender, System.EventArgs e)
    {
        DataGridViewColumn column = dataGridView.Columns[0];
        column.Width = 60;
    }


    // AutoSize the third column.
    private void Button6_Click(object sender,
        System.EventArgs e)
    {
        DataGridViewColumn column = dataGridView.Columns[2];
        column.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
    }

    // Set the vertical edge.
    private void Button7_Click(object sender,
        System.EventArgs e)
    {
        int thirdColumn = 2;
        DataGridViewColumn column =
            dataGridView.Columns[thirdColumn];
        column.DividerWidth = 10;
    }

    // Style and number columns.
    private void Button8_Click(object sender,
        EventArgs args)
    {
        DataGridViewCellStyle style = new DataGridViewCellStyle();
        style.Alignment =
            DataGridViewContentAlignment.MiddleCenter;
        style.ForeColor = Color.IndianRed;
        style.BackColor = Color.Ivory;

        foreach (DataGridViewColumn column in dataGridView.Columns)
        {
            column.HeaderCell.Value = column.Index.ToString();
            column.HeaderCell.Style = style;
        }
    }

    // Change the text in the column header.
    private void Button9_Click(object sender,
        EventArgs args)
    {
        foreach (DataGridViewColumn column in dataGridView.Columns)
        {

            column.HeaderText = String.Concat("Column ",
                column.Index.ToString());
        }
    }

    // Swap the last column with the first.
    private void Button10_Click(object sender, EventArgs args)
    {
        DataGridViewColumnCollection columnCollection = dataGridView.Columns;

        DataGridViewColumn firstVisibleColumn =
            columnCollection.GetFirstColumn(DataGridViewElementStates.Visible);
        DataGridViewColumn lastVisibleColumn =
            columnCollection.GetLastColumn(
                DataGridViewElementStates.Visible, DataGridViewElementStates.None);

        int firstColumn_sIndex = firstVisibleColumn.DisplayIndex;
        firstVisibleColumn.DisplayIndex = lastVisibleColumn.DisplayIndex;
        lastVisibleColumn.DisplayIndex = firstColumn_sIndex;
    }

    // Updated the criteria label.
    private void dataGridView_AutoSizeColumnModeChanged(object sender,
        DataGridViewAutoSizeColumnModeEventArgs args)
    {
        args.Column.DataGridView.Parent.
            Controls["flowlayoutpanel"].Controls[criteriaLabel].
            Text = criteriaLabel
            + args.Column.AutoSizeMode.ToString();
    }
    #endregion

    [STAThreadAttribute()]
    public static void Main()
    {
        Application.Run(new DataGridViewColumnDemo());
    }

}


.NET Framework

Com suporte em: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos do sistema do .NET Framework.

Qualquer estático (Shared no Visual Basic) membro público desse tipo é thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft