Desenvolvimento - C#

Personalizando colunas, linhas e células de um DataGridView

Veja nesse artigo como formatar as linhas, colunas e células de um DataGridView em tempo de execução usando o evento CellFormatting.

por Marcos Dell Antonio



Veja nesse artigo como formatar as linhas, colunas e células de um DataGridView em tempo de execução usando o evento CellFormatting.

O projeto exemplo desse artigo foi criado usando o Visual Studio 2005 e o controle DataGridView. Os conceitos apresentados aqui também se aplicam ao Visual Web Developer 2005 Express Edition.

- Aplicando a formatação usando o evento CellFormatting

Antes de tudo vamos criar uma aplicação Desktop para que seja possível aplicar os conceitos que serão vistos abaixo. Para isso, File - New - Project - Windows Application. Chame de "PersonalizandoDataGridView" e clique em OK.

Depois de criada a aplicação, adicione um DataGridView ao form e defina duas colunas: Id e Nome. Para defini-las, clique com o botão direito sobre a grid e escolha a opção "Edit Columns". Basta clicar em "Add...", definir o nome/header da coluna e confirmar clicando em "Add".

Agora que já temos a grid criada, vamos adicionar alguns itens a ela no evento Load do form. Veja como deve ser a codificação desse evento:

Ao executar nosso exemplo, deverá aparecer o seguinte resultado:

Agora vamos fazer as formatações em tempo de execução usando o evento CellFormatting.

A primeira delas será a formatação de uma linha. Defina o evento CellFormatting da seguinte forma:

O resultado disso é:

Da mesma forma como foi configurada a linha, podemos também configurar uma determinada coluna. Para isso, altere o evento CellFormatting para:

E o resultado apresentado é esse:

Para finalizar, vamos personalizar uma célula da grid. Para isso, o evento CellFormatting deve ser definido da seguinte forma:

Ao rodar a aplicação, o resultado é:

É importante desatacar que a propriedade "Value" do parâmetro "e" contem o valor da célula em questão. Logo, caso seja necessária uma formatação conforme o valor de uma célula pode ser feito algo parecido com isso:

A respectiva saída é essa:

- Conclusão

Apesar de ser um exemplo simples, isso é a base para aplicar qualquer tipo de formatação à grid. Pessoalmente, achei muito flexível essa forma de personalização dinâmica do DataGridView.

- Referências

- MSDN - Classe DataGridViewCellStyle
http://msdn2.microsoft.com/en-US/library/system.windows.forms.datagridviewcellstyle.aspx

- MSDN - Classe DataGridViewCellFormattingEventArgs
http://msdn2.microsoft.com/en-us/library/system.windows.forms.datagridviewcellformattingeventargs.aspx

- MSDN - Evento CellFormatting
http://msdn2.microsoft.com/en-us/system.windows.forms.datagridview.cellformatting.aspx

- Visual Studio 2005 Express Edition
http://msdn.microsoft.com/vstudio/express/vwd/

Marcos Dell Antonio

Marcos Dell Antonio - Profissional certificado (MCPD, MCTS e MCP) em tecnologias da Microsoft e especialista em .NET e Visual Studio Team System. Site: www.marcosdellantonio.net.