Curso de C# – Classe ColorDialog – Selecionando cores em uma paleta
Classe ColorDialog em C#
Um controle ColorDialog é utilizado para selecionar uma cor de uma paleta de cores disponível, e também para definir cores personalizadas. Essas cores podem então serem aplicadas em outros objetos do formulário, dinamicamente.
É possível criar um controle ColorDialog usando o designer de formulários durante o design da aplicação, ou então usando a classe ColorDialog no código em tempo de execução (runtime), dinamicamente.
Modo de Design
Para criar um ColorDialog em modo de design, simplesmente arraste o controle apropriado para um form. Você encontrará o ColorDialog na Toolbox -> Dialogs:
Modo Run-time
Para criar um controle a ColorDialog em tempo de execução basta criar uma instância da classe ColorDialog, ajustar suas propriedades e adicionar a classe aos controles do Form.
Primeiro criamos a instância da classe ColorDialog. O trecho de código a seguir permite criar um objeto de controle ColorDialog de nome cdgCaixaCores:
ColorDialog cdgCaixaCores = new ColorDialog();
A seguir temos algumas das propriedades que podem ser cofiguradas no controle em runtime:
- AllowFullOpen – Habilitar ou desabilitar o botão Definir Cores Personalizadas
- Color – A cor selecionada no controle.
- FullOpen – O valor true significa que a seção Definir Cores Personalizadas será exibida por padrão ao abrir o ColorDialog.
- SolidColorOnly – Indica se a caixa restringirá a escolha de cores sólidas pelos usuários.
- AnyColor – Se a caixa mostrará todas as cores definidas no conjunto de cores básicas.
Exemplos de configuração dessas propriedades:
cdgCaixaCores.AnyColor = true; // Caixa mostra todas as cores definidas cdgCaixaCores.SolidColorOnly = false; // Usuário poderá escolher cores não sólidas cdgCaixaCores.Color = Color.Red; // Cor vermelha selecionada no controle.
Usando o controle ColorDialog
Crie um novo projeto para Windows Forms no Visual Studio e insira no formulário os seguintes controles:
- Botão com propriedade Name igual a btnCorFundo; Texto: Cor de Fundo
- Botão com propriedade Name igual a btnCorTexto; Texto: Cor do Texto
- ColorDialog com propriedade Name igual a cdgCaixaCores
- TextBox com propriedade Name igual a txtCores; Fonte tamanho 16.
Veja nosso projeto na figura a seguir:
Vamos programar os botões:
// Evento Click do Botão Cor de Fundo - usando o controle da ToolBox: if (cdgCaixaCores.ShowDialog() == DialogResult.OK) { txtCores.BackColor = cdgCaixaCores.Color; // Muda a cor de fundo da caixa de texto. } // Evento Click no Botão Cor do Texto (criando um ColorDialog dinamicamente e configurando): ColorDialog cdgCores2 = new ColorDialog(); cdgCores2.AllowFullOpen = false; cdgCores2.AnyColor = true; cdgCores2.SolidColorOnly = false; cdgCores2.Color = Color.Blue; if (cdgCores2.ShowDialog() == DialogResult.OK) { txtCores.ForeColor = cdgCores2.Color; // Alterando a cor do texto digitado na caixa de texto }
Para testar, execute o programa, digite uma frase na caixa de texto e clique nos botões para alterar a cor de fundo e de fonte, selecionadas no caixa de diálogo de cores:
1 – Abrindo o programa e digitando uma frase na caixa de texto:
2 – Clique no botão Cor de Fundo para selecionar uma cor para o background da caixa de texto:
3 – Após selecionar a cor e clicar em OK, a cor será aplicada ao fundo da caixa de texto. Clique então no botão Cor do Texto para selecionar uma cor para a frase digitada:
4 – Clique em OK na caixa de diálogo de cor e verifique que a formatação desejada foi aplicada na caixa de texto:
É isso aí! No próximo tutorial vamos aprender a utilizar mais controles para Windows Forms. Até!
bom dia . parabéns e obrigado pela iniciativa da Bóson. tenho acompanhado o curso de c# , via youtube , e gostei muito da didática aplicada. gostaria de adquirir o download completo do curso de c#? é possível?