Bóson Treinamentos em Ciência e Tecnologia

Curso de C# – Classe ColorDialog – Selecionando cores em uma paleta

Classe ColorDialog - C# Programação com Windows Forms

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:

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:

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é!

Sair da versão mobile