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. |
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:
MS Access 2007
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 Label
1 Combobox - cboCores
1 PictureBox - picCor
Disponha os controles conforme o leiaute da figura abaixo:
Namespaces usados neste formulário:
Imports
SystemNo 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:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET
Classe ColorDialog (System.Windows.Forms) - MSDN - Microsoft
VB .NET - Aplicando um gradiente de cores em um ... - Macoratti.net