sexta-feira, 19 de abril de 2013

WindowsForms - básico do Básico


WindowsForms nada mais é do que você desenvolver uma aplicação que ficará instalada diretamente no desktop do usuário. Essa aplicação só “funcionará” em ambientes com sistema operacional Windows. Porém existem algumas formas de se emular essa aplicação em outros sistemas, como Mac O.S e Linux por exemplo.

Na tela New Project, adicione um projeto do tipo “Windows” e escolha a opção Windows Forms Application.  Como no exemplo abaixo:

 Ao criar o projeto a tela apresentada será essa abaixo:


O desenvolvimento de WindowsForms segue a mesma linha do desenvolvimento Web. Temos as guias:
  • ToolBox  - onde estão os controles disponíveis para utilização
  • DataSources – Local onde é possível criar e gerenciar um banco de dados
  • Solution Explorer – Representa a estrutura do seu projeto, arquivos, referências, etc.
  • Properties – local onde é possível alterar a uma propriedade especifica de um controle, de um form ou até mesmo criar um evento para uma ação.
  • Server Explorer – local onde você pode criar uma conexão com um banco de dados já existente


Sempre que criar um novo projeto, por padrão, um formulário é criado. Nesse caso o From1. O formulário é o local onde os controles serão apresentados para o usuário final.

Por exemplo, vou selecionar na ToolBox o controle TextBox e arrastar para o formulário e pressionar o F5 para executar. Veja abaixo:



No exemplo abaixo eu vou demonstrar como utilizar os controles mais básicos do WindowsForm.

Utilizando o mesmo formulário, vou adicionar um controle do tipo Button. E na guia de propriedades vou alterar a propriedade Text para “OK” e a propriedade Name para “BtnOK”.  Teremos a seguinte tela:




Agora vou dar um duplo click sobre o botão.  E o Visual Studio(VS) direciona para a o arquivo Form1.cs, local onde é feita toda a programação do formulário.  Por padrão o C# sempre cria o construtor padrão do formulário. Como no exemplo abaixo:

public Form1()
{
    InitializeComponent();
}

Mas ao dar o duplo click no botão “BtnOK” o VS adiciona o seguinte evento ao código
private void BtnOK_Click(object sender, EventArgs e)
{

}

Sempre que o usuário clicar no botão ok, esse evento será invocado.
Vou alterar esse evento  e adicionar o seguinte código:
private void BtnOK_Click(object sender, EventArgs e)
{
    MessageBox.Show(textBox1.Text);
}


Nesse código acima eu estou dizendo para o sistema exibir uma caixa de mensagem, para o usuário final, com o conteúdo do campo de texto.

Ao pressionar F5, digite um valor na caixa de texto e click em ok. Veja o resultado:

 No exemplo abaixo eu vou adicionar dois campos de texto, TextBox1 e TextBox2. Com o valor digitado pelo usuário eu vou realizar uma soma e imprimir o resultado na tela. Veja abaixo como ficou a tela:





Vou dar um duplo click no botão ok e colocar o código abaixo:
double x =0;
double y = 0;
double resultado = 0;
if(double.TryParse(textBox1.Text,out x) && double.TryParse(textBox2.Text, out y))
{
    resultado = x + y;
    MessageBox.Show(resultado.ToString());
}

No código acima eu converto o valor digitado no TextBox1 para Double, pois originalmente ele é uma string e não é possível realizar cálculos com texto. O mesmo foi feito para o TextBox2.  Na variável resultado  atribui o resultado da soma dos dois campos e exibi para o usuário final.
Ao executar o projeto e preencher os campos ao clicar no botão ok o resultado é o seguinte:


Para identificar cada campo podemos utilizar o controle tipo Label. Alterando a propriedade nome. No exemplo abaixo eu adicionei dois títulos, um para o valor X e outro para o valor Y. Veja o Exemplo:



Esse é um exemplo bem simples e para quem esta começando.
Em breve vou colocar um outro exemplo mais completo. 

Um comentário:

  1. Olá amigo, estou tentando aprender C# na marra também, li um comentário seu em outro blog e vim até aqui para ver se consigo uma ajudinha com um projeto que estou tentando desenvolver.

    A minha dificuldade é preencher um Datagridview que fica dentro de um Panel2 através de um form carregado num Panel1.

    Já tentei algumas soluções e por último tentei esta aqui mas não funciona:

    Código do botão do form2

    string[] dados = { conta, cbox_cliente.Text, cbox_evento.Text, data };
    novoform1 = new Form1();
    novoform1.dgv_eventos.Rows.Add(dados);
    novoform1.dataGridView1.Refresh();


    Alguma dica que possa me dar?

    Obrigado. Sucesso!

    ResponderExcluir