Olá pessoal,
Algumas vezes precisamos mudar as cores e/ou funcionalidades dos componentes de nosso programa. Para isso, ao invés de configurar um por um, podemos criar um novo componente herdando as características do componente original.
Neste exemplo eu criei um DataGridView com as linhas com cores alternadas em azul e ao clicar em uma célula toda a linha é selecionada. Ficou assim:
Para fazer isto é muito simples. Precisamos apenas criar uma nova classe para o projeto (Shift + Alt + C) e fazê-la herdar da classe DataGridView. Após isto, basta sobrescrevermos(override) o método InitLayout() para nossas necessidades.
Abaixo está o código da classe criada comentado com todas as alterações que fiz.
//Adicionar esta biblioteca
using System.Windows.Forms;
namespace CriarComponentes
{
//Herdar da classe DataGridView
class
DataGridViewAlternado : DataGridView
{
protected override void
InitLayout()
{
base.InitLayout();
//Cor de fundo das linhas
this.DefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(184, 204, 228);
//Cor do texto
this.DefaultCellStyle.ForeColor
= System.Drawing.Color.FromArgb(0, 0, 0);
//Cor de fundo das linhas alternadas
this.AlternatingRowsDefaultCellStyle.BackColor =
System.Drawing.Color.FromArgb(219, 229,
241);
//Cor do texto das linhas alternadas
this.AlternatingRowsDefaultCellStyle.ForeColor =
System.Drawing.Color.FromArgb(0, 0, 0);
//Cor de fundo da linha selecionada
this.RowsDefaultCellStyle.SelectionBackColor =
System.Drawing.Color.FromArgb(78, 129, 189);
//Cor do texto da linha selecionada
this.RowsDefaultCellStyle.SelectionForeColor = System.Drawing.Color.FromArgb(255, 255, 255);
//Cor de fundo do DataGridView (parte sem
nenhuma informação)
this.BackgroundColor = System.Drawing.Color.FromArgb(220, 220, 220);
//Gosto de deixar o modo de seleção como
FullRowSelect, desta forma ao clicar em uma célula a linha inteira é marcada
this.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
}
}
Após o projeto ser compilado o novo componente será adicionado ao Toolbox, ficando ao seu dispor junto com os demais.
Esta customização pode ser feita em qualquer componente e é muito útil para centralizar estilos. Gosto de comparar esta técnica às folhas de estilos .css, usadas em html, porém com a diferença que neste caso é possível alterar funcionalidades, enquanto o css limita-se ao design.
Até a próxima!
Olá primeiro parabéns pelo blog é muito bom! Acabo de encontrar e tentei seguir este tutorial a um projeto meu , infelizmente o componente não foi adicionado ao Toolbox, sabe o que pode ser?
ResponderExcluir