Criando Controles Em C#

06/03/2008 (Quinta-feira)

    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:
     figura1.jpg

  4º Adicione um TextBox e um Button ao controle:
     figura2.jpg

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

  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
  figura4.jpg

    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?