Criar seus próprios controles é muito fácil com C#. Veremos um pequeno exemplo, passo à passo, criando um controle para exibição/seleção de nome de arquivo. Então, sem mais delongas:
1º Crie um novo projeto C# WinForms
2º Adicione um novo “controle do usuário” (UserControl):
– No Visual Studio: Project, Add UserControl, UserControl
– No SharpDevelop: (File, New, File, C#, UserControl)
3º Se seu controle não estiver em “modo de desenho” (Design Mode), alterne para este modo; você deve estar vendo algo como a figura abaixo:

4º Adicione um TextBox e um Button ao controle:

5º Altere o texto do botão para “…” (s/ as aspas!), redimensione e posicione os controles conforme a figura abaixo:

6º Quando formos usar nosso controle (adicionando à um formulário) queremos que, ao alterar o tamanho do controle:
– a largura do TextBox acompanhe a mudança, aumentando ou diminuindo, conforme a situação; e
– o Button permaneça alinhado à direita, mantendo seu tamanho.
Para atingir esse objetivo, altere as propriedades indicadas abaixo:
TextBox: Anchor = Left, Rigth, Top
Button: Anchor = Rigth, Top
Pronto, nosso controle já está bonito
; agora só falta fazê-lo funcionar:
7º Clique duas vezes sobre o Button, para tratar o evento OnClick, e digite o seguinte código:
System.Windows.Forms.OpenFileDialog openDlg = new OpenFileDialog(); openDlg.Title = Text; openDlg.Filter = Filter; openDlg.FilterIndex = 0; openDlg.InitialDirectory = InitialDir; if (openDlg.ShowDialog() == DialogResult.OK) textBox1.Text = openDlg.FileName;
8º Abaixo do construtor, digite as seguintes propriedades:
///filtro do diálogo de seleção de arquivo
string mFilter;
public string Filter
{
get { return mFilter; }
set { mFilter = value.Trim(); }
}
///diretório inicial do diálogo de seleção de arquivo
string mInitialDir;
public string InitialDir
{
get { return mInitialDir; }
set
{
if (value == null)
mInitialDir = value;
else
mInitialDir = value.Trim();
}
}
///permitir digitação diretamente no TextBox?
public bool CanType
{
get { return textBox1.ReadOnly; }
set { textBox1.ReadOnly = value; }
}
9º No construtor, abaixo de InitializeComponent();, digite:
Filter = "Todos os arquivos (*.*)|*.*"; Text = "Selecione o arquivo:";
Nosso controle está pronto! Vamos testá-lo?
Compile o projeto e visualize o formulário (MainForm) em “modo de desenho” (Design Mode).
Na “caixa de ferramentas” (ToolBox), localize nosso controle e adicione-o ao formulário

Visualize as propriedades do controle, e veja que nossas propriedades (Filter, InitialDir & CanType) já estão lá.
Execute a aplicação; nosso controle estará lá, 100% funcional!
Criar controles no C# é algo muito simples, que pode trazer grandes vantagens, como o ganho de produtividade (trazido pelo reaproveitamento), facilidade de manutenção, criação de visuais arrojados para as aplicações, etc.
Você sabia que…
O músculo mais potente do nosso corpo é a língua?
Escrito por Rafael Rodrigues