C# - Criando Controles Personalizados (User Control)
Neste artigo veremos como podemos criar controles personalizadas na linguagem C#. |
Quando você está desenvolvendo o seu programa Window Forms, o designer do formulário é onde você organiza seus controles e decide qual a aparência deseja dar a eles. Existe também um designer para controles de usuário, o User Control Designer, que permite que você decida como será o controle de usuário.
Criar controles personalizados com C# é tão fácil como criar uma classe. Você simplesmente utiliza a herança para herdar de um controle já existente e adiciona as características desejadas ao seu controle. Além disto você pode também criar uma classe de controle customizado (User Control) como parte do projeto existente e então mais tarde colocá-la em uma assembly separado que pode ser compartilhado com outros programadores.
Podemos fazer distinção entre três tipos de controles personalizados :
Controles de Usuário - User Controls
Um controle de usuário é semelhante a qualquer outra classe, mas com a capacidade adicional de ser colocado na caixa de ferramentas e ser exibido em um formulário. Onde um módulo de classe possui apenas código, um módulo de controle de usuário possui código e um designer. O User Control Designer é semelhante a um designer de formulários - possui propriedades para controlar a aparência e o comportamento do controle do usuário.
Os controles de usuário são o tipo mais comum de projeto , e embora sejam simples de criar possuem algumas limitações :
Tendem a combinar a regra de negócios com a interface de usuário.
Tendem a esconder todas as propriedades e métodos de seus controles filhos.
Como exemplo vamos criar um controle de
usuário que exiba a relação dos estados brasileiros combinando os controles
Label e Combobox.
Recursos Usados :
Criando o seu primeiro controle de usuário - User Control
Vamos então criar um controle de usuário (User Control) bem simples mostrando as etapas da sua criação.
Abra o VS 2017 Community e crie um novo projeto (File-> New Project) usando a linguagem Visual C# e o template Windows Classic Desktop ->Windows Forms Application(.NET Framework)
Informe um nome a seu gosto. Eu vou usar o nome CShp_UserControl.
Após a criação do projeto vamos criar o nosso controle de usuário.
Clique com o botão do mouse sobre o nome do projeto e a seguir clique em Add->User Control;
A seguir informe o nome ucEstados.cs e clique no botão Add:
Você verá o User Control Designer aberto pronto para ser usado:
A partir da Toolbox inclua no designer os seguintes controles:
Defina o leiaute e cores conforme mostra a figura abaixo:
Agora vamos criar uma classe Estado para representar os estados que vamos exibir no combobox. No menu Project clique em Add Class e informe o nome Estado.cs.
A seguir defina o código abaixo na classe Estado:
namespace CShp_UserControl
{
public class Estado
{
public int Id { get; set; }
public string Nome { get; set; }
}
}
|
Agora abra o arquivo ucEstados.cs e inclua o código abaixo neste arquivo:
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace CShp_UserControl
{
public partial class ucEstados : UserControl
{
public ucEstados()
{
InitializeComponent();
}
public Estado estadoSelecionado
{
get
{
return (Estado)cboEstados.SelectedItem;
}
}
private void ucEstados_Load(object sender, EventArgs e)
{
List<Estado> estados = new List<Estado>();
estados.Add(new Estado() { Id = 1, Nome = "Acre" });
estados.Add(new Estado() { Id = 2, Nome = "Alagoas" });
estados.Add(new Estado() { Id = 3, Nome = "Amapá" });
estados.Add(new Estado() { Id = 4, Nome = "Amazonas" });
estados.Add(new Estado() { Id = 5, Nome = "Bahia" });
estados.Add(new Estado() { Id = 6, Nome = "Ceará" });
estados.Add(new Estado() { Id = 7, Nome = "Distrito Federal" });
estados.Add(new Estado() { Id = 8, Nome = "Espírito Santo" });
estados.Add(new Estado() { Id = 9, Nome = "Goiás" });
estados.Add(new Estado() { Id = 10, Nome = "Maranhão" });
cboEstados.DataSource = estados;
cboEstados.ValueMember = "Id";
cboEstados.DisplayMember = "Nome";
}
}
}
|
Este código define uma propriedade chamada estadoSelecionado que retorna o objeto Estado selecionado e também preenche uma lista de objetos estados com 10 estados para testes.
Compile o projeto e você verá que o User Control criado vai aparecer na ToolBox.
Abra o formulário Form1.cs a partir da ToolBox arraste e solte o controle ucEstados no formulário. Inclua também um botão de comando conforme o leiaute abaixo:
Agora defina o seguinte código no evento Click do botão de comando:
private void btnEstadoSelecionado_Click(object sender, EventArgs e) { MessageBox.Show(string.Format("Id = {0}, Nome : {1}", ucEstados1.estadoSelecionado.Id.ToString(), ucEstados1.estadoSelecionado.Nome.ToString())); } |
Executando o projeto iremos obter o seguinte resultado:
Pegue o código do projeto aqui : CShp_UserControl.zip
Até o próximo artigo...
(Disse Jesus)
O meu mandamento é este: Que vos ameis
uns aos outros, assim como eu vos amei.
João 15:12
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
|
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Criando um controle customizado com os controles ... - Macoratti.net