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 AntonioO 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/