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
Este tópico ainda não foi avaliado como - Avalie este tópico

Classe DataGridColumnStyle

Especifica a aparência, formatação de texto e o comportamento de um System.Windows.Forms.DataGrid coluna do controle. Essa classe é abstrata.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (em System.Windows.Forms.dll)
public abstract class DataGridColumnStyle : Component, 
	IDataGridColumnStyleEditingNotificationService

O tipo DataGridColumnStyle expõe os membros a seguir.

  NomeDescrição
Método públicoDataGridColumnStyle()Em uma classe derivada, inicializa uma nova instância da DataGridColumnStyle classe.
Método públicoDataGridColumnStyle(PropertyDescriptor)Inicializa uma nova instância da DataGridColumnStyle classe com o especificado PropertyDescriptor.
Superior
  NomeDescrição
Propriedade públicaAlignmentObtém ou define o alinhamento do texto em uma coluna.
Propriedade protegidaCanRaiseEventsObtém um valor indicando se o componente pode disparar um evento. (Herdado de Component.)
Propriedade públicaContainerObtém o IContainer que contém o Component. (Herdado de Component.)
Propriedade públicaDataGridTableStyleObtém o DataGridTableStyle para a coluna.
Propriedade protegidaDesignMode Obtém um valor que indica se o Component está em modo de design. (Herdado de Component.)
Propriedade protegidaEvents Obtém a lista de manipuladores de eventos que estão conectados a este Component. (Herdado de Component.)
Propriedade protegidaFontHeightObtém a altura da fonte da coluna.
Propriedade públicaHeaderAccessibleObjectInfraestrutura. Obtém o AccessibleObject para a coluna.
Propriedade públicaHeaderTextObtém ou define o texto do cabeçalho da coluna.
Propriedade públicaMappingNameObtém ou define o nome do membro para mapear o estilo de coluna para dados.
Propriedade públicaNullTextObtém ou define o texto que é exibido quando a coluna contém null.
Propriedade públicaPropertyDescriptorObtém ou define o PropertyDescriptor que determina os atributos dos dados exibidos pelo DataGridColumnStyle.
Propriedade públicaReadOnlyObtém ou define um valor que indica se os dados na coluna podem ser editados.
Propriedade públicaSiteObtém ou define o ISite da Component. (Herdado de Component.)
Propriedade públicaWidthObtém ou define a largura da coluna.
Superior
  NomeDescrição
Método protegidoAbortQuando substituído em uma classe derivada, inicia uma solicitação para interromper um procedimento de edição.
Método protegidoBeginUpdateSuspende a pintura da coluna até o EndUpdate método é chamado.
Método protegidoCheckValidDataSourceLança uma exceção se a System.Windows.Forms.DataGrid não tem uma fonte de dados válida, ou se esta coluna não está mapeada para uma propriedade válida na fonte de dados.
Método protegidoColumnStartedEditingInforma o System.Windows.Forms.DataGrid que o usuário começou a editar a coluna.
Método protegidoCommitQuando substituído em uma classe derivada, inicia uma solicitação para concluir o procedimento de edição.
Método protegidoConcedeFocusNotifica uma coluna que ele deve ceder o foco para o controle hospeda-lo.
Método protegidoCreateHeaderAccessibleObjectObtém o AccessibleObject para a coluna.
Método públicoCreateObjRefCria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto. (Herdado de MarshalByRefObject.)
Método públicoDispose() Libera todos os recursos usados pelo Component. (Herdado de Component.)
Método protegidoDispose(Boolean)Libera os recursos não gerenciados usados pela Component e, opcionalmente, libera os recursos gerenciados. (Herdado de Component.)
Método protegidoEdit(CurrencyManager, Int32, Rectangle, Boolean)Prepara uma célula para edição.
Método protegidoEdit(CurrencyManager, Int32, Rectangle, Boolean, String)Prepara a célula para edição usando especificado CurrencyManager, número, de linha e Rectangle parâmetros.
Método protegidoEdit(CurrencyManager, Int32, Rectangle, Boolean, String, Boolean)Quando substituído em uma classe derivada, prepara uma célula para edição.
Método protegidoEndUpdateRetoma a pintura de colunas suspenso chamando o BeginUpdate método.
Método protegidoEnterNullValueInsere um DBNull.Value na coluna.
Método públicoEquals(Object) Verifica se o objeto especificado é igual ao objeto atual. (Herdado de Object.)
Método protegidoFinalizeLibera os recursos não gerenciados e executa outras operações de limpeza antes do Component é recuperados pela coleta de lixo. (Herdado de Component.)
Método protegidoGetColumnValueAtRowObtém o valor da linha especificada URL CurrencyManager.
Método públicoGetHashCodeServe como uma função hash para um tipo específico. (Herdado de Object.)
Método públicoGetLifetimeServiceRecupera o objeto de serviço vida útil atual que controla a diretiva de vida útil para esta instância. (Herdado de MarshalByRefObject.)
Método protegidoGetMinimumHeightQuando substituído em uma classe derivada, obtém a altura mínima de uma linha.
Método protegidoGetPreferredHeightQuando substituído em uma classe derivada, obtém a altura usada para redimensionamento automático de colunas.
Método protegidoGetPreferredSizeQuando substituído em uma classe derivada, obtém a largura e altura do valor especificado. A largura e altura são usados quando o usuário navega para DataGridTableStyle usando o DataGridColumnStyle.
Método protegidoGetServiceRetorna um objeto que representa um serviço fornecido pela Component ou por seus Container. (Herdado de Component.)
Método públicoGetType Obtém o Type da instância atual. (Herdado de Object.)
Método públicoInitializeLifetimeServiceObtém um objeto de serviço de tempo de vida para controlar a diretiva vida útil para esta instância. (Herdado de MarshalByRefObject.)
Método protegidoInvalidateRedesenha a coluna e faz com que uma mensagem de pintura a serem enviados para o controle.
Método protegidoMemberwiseClone()Cria uma cópia superficial do Object atual. (Herdado de Object.)
Método protegidoMemberwiseClone(Boolean)Cria uma cópia superficial do atual MarshalByRefObject objeto. (Herdado de MarshalByRefObject.)
Método protegidoPaint(Graphics, Rectangle, CurrencyManager, Int32)Pinta a DataGridColumnStyle com a versão especificada Graphics, Rectangle, CurrencyManagere o número de linhas.
Método protegidoPaint(Graphics, Rectangle, CurrencyManager, Int32, Boolean)Quando substituído em uma classe derivada, pinta uma DataGridColumnStyle com a versão especificada Graphics, Rectangle, CurrencyManager, número da linha e alinhamento.
Método protegidoPaint(Graphics, Rectangle, CurrencyManager, Int32, Brush, Brush, Boolean)Pinta uma DataGridColumnStyle com a versão especificada Graphics, Rectangle, CurrencyManager, alinhamento, cor de plano de fundo, cor de primeiro plano e número de linhas.
Método protegidoReleaseHostedControlPermite que a coluna para liberar recursos quando o controle hospeda não é necessária.
Método públicoResetHeaderTextRedefine a HeaderText para o valor padrão, null.
Método protegidoSetColumnValueAtRowDefine o valor em uma linha especificada com o valor de um especificado CurrencyManager.
Método protegidoSetDataGridConjuntos de System.Windows.Forms.DataGrid controle pertencente a esta coluna.
Método protegidoSetDataGridInColumnConjuntos de System.Windows.Forms.DataGrid para a coluna.
Método públicoToStringRetorna uma String contendo o nome do Component, se houver. Este método não deve ser substituído. (Herdado de Component.)
Método protegidoUpdateUIAtualiza o valor de uma linha especificada pelo texto fornecido.
Superior
  NomeDescrição
Evento públicoAlignmentChangedOcorre quando o Alignment as alterações de valor de propriedade.
Evento públicoDisposedOcorre quando o componente é descartado por uma chamada do método Dispose. (Herdado de Component.)
Evento públicoFontChangedOcorre quando a fonte da coluna é alterada.
Evento públicoHeaderTextChangedOcorre quando o HeaderText as alterações de valor de propriedade.
Evento públicoMappingNameChangedOcorre quando o MappingName o valor é alterado.
Evento públicoNullTextChangedOcorre quando o NullText o valor é alterado.
Evento públicoPropertyDescriptorChangedOcorre quando o PropertyDescriptor as alterações de valor de propriedade.
Evento públicoReadOnlyChangedOcorre quando o ReadOnly as alterações de valor de propriedade.
Evento públicoWidthChangedOcorre quando o Width as alterações de valor de propriedade.
Superior
  NomeDescrição
Implementação explícita da interfaceMétodo particularIDataGridColumnStyleEditingNotificationService.ColumnStartedEditingInforma o DataGrid que o usuário começou a editar a coluna do controle.
Superior

A coleção de DataGridColumnStyle objetos (a GridColumnStylesCollection) é acessado através do System.Windows.Forms.DataGrid do controle TableStyles propriedade.

O System.Windows.Forms.DataGrid controle cria automaticamente uma coleção de DataGridColumnStyle objetos quando você definir a DataSource propriedade a uma fonte de dados apropriado. Os objetos criados na verdade são ocorrências de uma das seguintes classes que herdam de DataGridColumnStyle: DataGridBoolColumn ou DataGridTextBoxColumn classe.

Para formatar a exibição de dados, defina a Format propriedade da DataGridTextBoxColumn classe para um dos valores de formatação. Para obter mais informações sobre valores válidos de formatação, consulte Tipos de formatação. e Data personalizada e seqüências de caracteres de formato de hora.

Você também pode criar seu próprio conjunto de DataGridColumnStyle objetos e adicioná-los para o GridColumnStylesCollection. Quando você faz isso, você deve definir o MappingName de cada estilo de coluna para o ColumnName de um DataColumn para sincronizar a exibição das colunas com os dados reais.

Observação de cuidadoCuidado

Criar sempre DataGridColumnStyle objetos e adicioná-los para o GridColumnStylesCollection antes de adicionar DataGridTableStyle objetos para o GridTableStylesCollection. Quando você adiciona um vazio DataGridTableStyle com um válido MappingName valor à coleção, DataGridColumnStyle objetos são gerados automaticamente para você. Conseqüentemente, uma exceção será lançada se você tentar adicionar novo DataGridColumnStyle objetos com duplicata MappingName valores para o GridColumnStylesCollection.

Quando uma das classes derivadas é instanciada com um System.Windows.Forms.DataGrid o controle, a classe criada depende o DataType do DataColumn associados a DataGridColumnStyle objeto. Por exemplo, um DataColumn com sua DataType definido como System.Boolean será associado com um DataGridBoolColumn. Para determinar o tipo de qualquer DataGridColumnStyle, use o GetType método.

Para criar suas próprias classes de coluna, você pode herdar de DataGridColumnStyle. Talvez você queira fazer isso para criar colunas especiais que hospedam controles, como exemplificado pelo DataGridTextBox de classe, que hospeda o TextBox controle. Por exemplo, você pode hospedar um Image o controle para Mostrar figuras em colunas, ou você pode criar seu próprio controle de usuário ao host na coluna.

A funcionalidade da DataGridColumnStyle não deve ser confundido com o da DataColumn. Enquanto o DataColumn contém propriedades e métodos apropriados a criação de esquema da tabela de dados, o DataGridColumnStyle contém propriedades e métodos relacionados a aparência de uma coluna individual na tela.

Se uma linha contiver um DBNull.Value, o texto exibido na coluna pode ser definido com o NullText propriedade.

O DataGridColumnStyle classe também permite que você especificar o comportamento de uma coluna, enquanto seus dados está sendo alterados. O BeginUpdate e EndUpdate métodos suspender temporariamente o desenho da coluna enquanto grandes atualizações estão sendo feitas para os dados da coluna. Sem essa funcionalidade, cada alteração em cada célula da grade seria desenhada imediatamente; Isso poderia ser desviem a atenção para o usuário e a responsabilidade de desempenho.

Vários métodos permitem o monitoramento da coluna, como ele é editado pelo usuário, incluindo o Edit e Commit eventos.

A maioria das propriedades e métodos da classe são projetados para controlar a aparência de uma coluna. Mas alguns, tais como o GetColumnValueAtRow e SetColumnValueAtRow permitem que você examine e altere o valor em uma célula especificada.

Observações para implementadores

Quando você herda de DataGridColumnStyle, você deve substituir os seguintes membros: Abort, Commit, Edit, e Paint (duas vezes).

O exemplo de código a seguir cria um DataGridColumnStyle que hospeda um DateTimePicker controle.


using System;
using System.Data;
using System.Windows.Forms;
using System.Drawing;
using System.Security.Permissions;

// This example shows how to create your own column style that
// hosts a control, in this case, a DateTimePicker.
public class DataGridTimePickerColumn : DataGridColumnStyle
{
    private CustomDateTimePicker customDateTimePicker1 = 
        new CustomDateTimePicker();

    // The isEditing field tracks whether or not the user is
    // editing data with the hosted control.
    private bool isEditing;

    public DataGridTimePickerColumn() : base()
    {
        customDateTimePicker1.Visible = false;
    }

    protected override void Abort(int rowNum)
    {
        isEditing = false;
        customDateTimePicker1.ValueChanged -=
            new EventHandler(TimePickerValueChanged);
        Invalidate();
    }

    protected override bool Commit
        (CurrencyManager dataSource, int rowNum)
    {
        customDateTimePicker1.Bounds = Rectangle.Empty;

        customDateTimePicker1.ValueChanged -=
            new EventHandler(TimePickerValueChanged);

        if (!isEditing)
            return true;

        isEditing = false;

        try
        {
            DateTime value = customDateTimePicker1.Value;
            SetColumnValueAtRow(dataSource, rowNum, value);
        }
        catch (Exception)
        {
            Abort(rowNum);
            return false;
        }

        Invalidate();
        return true;
    }

    protected override void Edit(
        CurrencyManager source,
        int rowNum,
        Rectangle bounds,
        bool readOnly,
        string displayText,
        bool cellIsVisible)
    {
        DateTime value = (DateTime)
            GetColumnValueAtRow(source, rowNum);
        if (cellIsVisible)
        {
            customDateTimePicker1.Bounds = new Rectangle
                (bounds.X + 2, bounds.Y + 2,
                bounds.Width - 4, bounds.Height - 4);
            customDateTimePicker1.Value = value;
            customDateTimePicker1.Visible = true;
            customDateTimePicker1.ValueChanged +=
                new EventHandler(TimePickerValueChanged);
        }
        else
        {
            customDateTimePicker1.Value = value;
            customDateTimePicker1.Visible = false;
        }

        if (customDateTimePicker1.Visible)
            DataGridTableStyle.DataGrid.Invalidate(bounds);

        customDateTimePicker1.Focus();
    }

    protected override Size GetPreferredSize(
        Graphics g,
        object value)
    {
        return new Size(100, customDateTimePicker1.PreferredHeight + 4);
    }

    protected override int GetMinimumHeight()
    {
        return customDateTimePicker1.PreferredHeight + 4;
    }

    protected override int GetPreferredHeight(Graphics g,
        object value)
    {
        return customDateTimePicker1.PreferredHeight + 4;
    }

    protected override void Paint(Graphics g,
        Rectangle bounds,
        CurrencyManager source,
        int rowNum)
    {
        Paint(g, bounds, source, rowNum, false);
    }

    protected override void Paint(
        Graphics g,
        Rectangle bounds,
        CurrencyManager source,
        int rowNum,
        bool alignToRight)
    {
        Paint(
            g, bounds,
            source,
            rowNum,
            Brushes.Red,
            Brushes.Blue,
            alignToRight);
    }

    protected override void Paint(
        Graphics g,
        Rectangle bounds,
        CurrencyManager source,
        int rowNum,
        Brush backBrush,
        Brush foreBrush,
        bool alignToRight)
    {
        DateTime date = (DateTime)
            GetColumnValueAtRow(source, rowNum);
        Rectangle rect = bounds;
        g.FillRectangle(backBrush, rect);
        rect.Offset(0, 2);
        rect.Height -= 2;
        g.DrawString(date.ToString("d"),
            this.DataGridTableStyle.DataGrid.Font,
            foreBrush, rect);
    }

    protected override void SetDataGridInColumn(DataGrid value)
    {
        base.SetDataGridInColumn(value);
        if (customDateTimePicker1.Parent != null)
        {
            customDateTimePicker1.Parent.Controls.Remove
                (customDateTimePicker1);
        }
        if (value != null)
        {
            value.Controls.Add(customDateTimePicker1);
        }
    }

    private void TimePickerValueChanged(object sender, EventArgs e)
    {
        // Remove the handler to prevent it from being called twice in a row.
        customDateTimePicker1.ValueChanged -=
            new EventHandler(TimePickerValueChanged);
        this.isEditing = true;
        base.ColumnStartedEditing(customDateTimePicker1);
    }
}

public class CustomDateTimePicker : DateTimePicker
{
    [SecurityPermissionAttribute(
    SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.UnmanagedCode)]
    protected override bool ProcessKeyMessage(ref Message m)
    {
        // Keep all the keys for the DateTimePicker.
        return ProcessKeyEventArgs(ref m);
    }
}

public class MyForm : Form
{
    private DataTable namesDataTable;
    private DataGrid grid = new DataGrid();
    public MyForm() : base()
    {
        InitForm();

        namesDataTable = new DataTable("NamesTable");
        namesDataTable.Columns.Add(new DataColumn("Name"));
        DataColumn dateColumn = new DataColumn
            ("Date", typeof(DateTime));
        dateColumn.DefaultValue = DateTime.Today;
        namesDataTable.Columns.Add(dateColumn);
        DataSet namesDataSet = new DataSet();
        namesDataSet.Tables.Add(namesDataTable);
        grid.DataSource = namesDataSet;
        grid.DataMember = "NamesTable";
        AddGridStyle();
        AddData();
    }

    private void AddGridStyle()
    {
        DataGridTableStyle myGridStyle = new DataGridTableStyle();
        myGridStyle.MappingName = "NamesTable";

        DataGridTextBoxColumn nameColumnStyle =
            new DataGridTextBoxColumn();
        nameColumnStyle.MappingName = "Name";
        nameColumnStyle.HeaderText = "Name";
        myGridStyle.GridColumnStyles.Add(nameColumnStyle);

        DataGridTimePickerColumn timePickerColumnStyle =
            new DataGridTimePickerColumn();
        timePickerColumnStyle.MappingName = "Date";
        timePickerColumnStyle.HeaderText = "Date";
        timePickerColumnStyle.Width = 100;
        myGridStyle.GridColumnStyles.Add(timePickerColumnStyle);

        grid.TableStyles.Add(myGridStyle);
    }

    private void AddData()
    {

        DataRow dRow = namesDataTable.NewRow();
        dRow["Name"] = "Name 1";
        dRow["Date"] = new DateTime(2001, 12, 01);
        namesDataTable.Rows.Add(dRow);

        dRow = namesDataTable.NewRow();
        dRow["Name"] = "Name 2";
        dRow["Date"] = new DateTime(2001, 12, 04);
        namesDataTable.Rows.Add(dRow);

        dRow = namesDataTable.NewRow();
        dRow["Name"] = "Name 3";
        dRow["Date"] = new DateTime(2001, 12, 29);
        namesDataTable.Rows.Add(dRow);

        dRow = namesDataTable.NewRow();
        dRow["Name"] = "Name 4";
        dRow["Date"] = new DateTime(2001, 12, 13);
        namesDataTable.Rows.Add(dRow);

        dRow = namesDataTable.NewRow();
        dRow["Name"] = "Name 5";
        dRow["Date"] = new DateTime(2001, 12, 21);
        namesDataTable.Rows.Add(dRow);

        namesDataTable.AcceptChanges();
    }

    private void InitForm()
    {
        this.Size = new Size(500, 500);
        grid.Size = new Size(350, 250);
        grid.TabStop = true;
        grid.TabIndex = 1;
        this.StartPosition = FormStartPosition.CenterScreen;
        this.Controls.Add(grid);
    }

    [STAThread]
    public static void Main()
    {
        Application.Run(new MyForm());
    }
}


.NET Framework

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

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

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 de sistema do NET Framework.
Quaisquer membros estático (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.
Isso foi útil para você?
(1500 caracteres restantes)

Contribuições da comunidade

ADICIONAR
© 2013 Microsoft. Todos os direitos reservados.