C# -  Exibindo e usando as cores disponíveis


 Neste artigo vou mostrar como exibir os nomes das cores disponíveis em um combobox e aplicar a cor selecionada em uma aplicação Windows Forms.

Há um só corpo e um só Espírito, como também fostes chamados em uma só esperança da vossa vocação;
Um só Senhor, uma só fé, um só batismo;
Um só Deus e Pai de todos, o qual é sobre todos, e por todos e em todos vós.
Efésios 4:4-6

 

Você já precisou exibir a relação dos nomes das cores disponíveis no sistema e a respectiva cor ?

 

Você já deve saber que pode usar o componente ColorDialog para exibir uma janela de diálogo com a paleta de cores, e fazer isso é bem simples.

 

Basta usar o código abaixo em uma aplicação Windows Forms onde temos uma caixa de texto(txtCor) com o texto Macoratti .net e um button(btnCores) que vai abrir a janela de diálogo e permitir ao usuário selecionar uma cor para o texto:

 

   private void btnCores_Click(object sender, EventArgs e)
   {
            ColorDialog minhasCores = new ColorDialog();
            // Não permite ao usuário selecionar uma cor customizada
            minhasCores.AllowFullOpen = false;
            // Permite o usuário obter ajuda 
            minhasCores.ShowHelp = true;
            // Define a cor inicial selecionada para a cor atual
            minhasCores.Color = txtCor.ForeColor;
            // Atualiza a cor no TextBox 
            if (minhasCores.ShowDialog() == DialogResult.OK)
                txtCor.ForeColor = minhasCores.Color;
   }

 

Existem muitas formas de realizar essa tarefa e neste artigo eu vou mostrar uma forma bem sucinta usando a enumeração KnowColor que especifica as cores conhecidas do sistema.

 

Vamos agora à parte prática...

Recursos usados:

Nota: Baixe e use a versão Community 2015 do VS ela é grátis e é equivalente a versão Professional.

Criando o projeto no Visual Studio 2015 Community

Abra o VS 2015 Community e clique em New Project;

Selecione a linguagem Visual C# e o template Windows Forms Application;

Informe o nome DataGridView_Crud e clique no botão OK;

No formulário form1.vb inclua os seguintes controles a partir da ToolBox:

  1. 1 Label

  2. 1 Combobox - cboCores

  3. 1 PictureBox - picCor

Disponha os controles conforme o leiaute da figura abaixo:

 

 

Namespaces usados neste formulário:

Imports System
Imports
System.Windows.Forms
Imports
System.Drawing

No evento Load do formulário form1.cs vamos carregar o controle Combobox - cboCores - com as cores disponíveis usando a enumeração KnowColor :

 

 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

   string[] cores = System.Enum.GetNames(typeof(System.Drawing.KnownColor));
   cboCores.Items.AddRange(cores);

 End Sub

 

Vamos entender o código:

 

Criamos um array de strings chamado cores e usamos o método enum.GetNames() para retornar um array de nomes das constantes especificadas na enumeração KnowColor.

 

A seguir usamos o método AddRange que adiciona um array de itens à lista de itens da combobox.

 

Agora no evento SelectedIndexChanged do controle Combobox vamos definir o código que a partir da cor selecionada pelo usuário aplica a cor no controle PictureBox - picCor.

 

  private void cboCores_SelectedIndexChanged(object sender, EventArgs e)
  {
              Color minhaCor = Color.FromName(cboCores.Text);
              picCor.BackColor = minhaCor;
  }

 

O código acima usa o método Color.FromName  que cria uma estrutura de cores a partir do nome especificado de uma cor predefinida, que é o nome da  cor selecionada pelo usuário na combobox.

 

A  seguir aplicamos a cor na propriedade BackColor do controle PictureBox.

 

Poderíamos ter usado o método ColorTranslator.FromHtml(string) que traduz uma representação de cores HTML para uma estrutura de cor GDI+.

 

A diferença entre os dois métodos é que se Color.FromName não encontrar uma cor correspondente ele retorna Color(0,0,0) e ColorTranslator.FromHtml() lança uma exceção.

 

Executando projeto iremos obter o seguinte resultado:

 

1- Exibindo as cores disponíveis

 

2- Aplicando uma cor selecionada
 

 

Pegue o projeto completo aqui :  WF_Colors.zip

 

E os que são de Cristo crucificaram a carne com as suas paixões e concupiscências.
Gálatas 5:24

 

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ?

 

Referências:


José Carlos Macoratti