50
Programação em C# com Visual Studio .NET Prof. Alessandro Brawerman

Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Embed Size (px)

Citation preview

Page 1: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# com Visual Studio .NET

Prof. Alessandro Brawerman

Page 2: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 2

Trabalhando com o Visual Studio .NET

Como os programas em Windows são orientados a eventos é comum desativar opções de menus e botões.

Neste primeiro programa, vamos criar uma espécie de gangorra eletrônica.

Page 3: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 3

Programa 01

Criar uma aplicação do tipo Windows Application e chamá-la de Gangorra.

Menu File/New/Project. Selecione o Visual C# Projects na opção

Templates e preencha o campo nome com a palavra Gangorra.

Page 4: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 4

Programa 01 – Passo a Passo

Mude o título do formulário para Gangorra• Propriedade text

Insira dois botões alinhados na horizontal. Mude o texto dos botões para ON e OFF.

• Propriedade text Mude o nome dos botões para bOn e bOff.

• Propriedade name

Page 5: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 5

Programa 01 – Passo a Passo

Insira mais um botão abaixo e alinhe-o na vertical com um dos anteriores.

Chame-o de bFechar e mude seu texto para Fechar.

Page 6: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 6

Programa 01 – Passo a Passo

O objetivo é que quando o usuário clique em um botão, desabilite o outro, formando assim uma gangorra.

Na tela de design do form, clique duas vezes no botão ON.

Isto cria o evento clique no código. Toda vez que este botão for pressionado pelo usuário o código neste método é executado.

Page 7: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 7

Programa 01 – Passo a Passo

Insira o seguinte código no método click do botão ON:private void bOn_Click(object sender, EventArgs e)

{

bOn.Enabled = false;

bOff.Enabled = true;

}

Page 8: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 8

Programa 01 – Passo a Passo

Volte para a tela de design do form, use a aba ou apert Shift + F7.

Duplo clique no botão OFF e insira o seguinte código: private void bOff_Click(object sender, EventArgs e) { bOff.Enabled = false; bOn.Enabled = true; }

Page 9: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 9

Programa 01 – Passo a Passo

Volte para a tela de design do form, use a aba ou apert Shift + F7.

Duplo clique no botão Fechar e insira o seguinte código:private void bFechar_Click(object sender, EventArgs e)

{ Close();

}

Page 10: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 10

Programa 01 – Passo a Passo

Antes de executar edite a propriedade Enabled do botão OFF e marque false.

Execute o programa. O que acontece?

• Ao iniciar o botão OFF está desabilitado.

• Ao clicar em ON, o botão ON fica desabilitado e o OFF é habilitado.

• Ao clicar em OFF, o botão OFF fica desabilitado e o ON é habilitado.

• Ao clicar em Fechar, a aplicações é fechada.

Page 11: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 11

Programa 01 – Passo a Passo

Examine os arquivos listados no Solution Explorer.• Solution “Gangorra”

• Arquivo de solução de nível superior

• Um por aplicativo

• Informa o projeto inicial

Page 12: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 12

Programa 01 – Passo a Passo

• Gangorra• Arquivo do projeto do C#.

• Cada arquivo de projeto referencia um ou mais arquivos que contém o código-fonte.

• Todos os códigos-fonte de um único projeto devem ser escritos na mesma linguagem.

Page 13: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 13

Programa 01 – Passo a Passo

• Properties• Contém um arquivo denominado AssemblyInfo.cs para

adicionar atributos ao programa, como nome do autor e outros.

• References• Contém referências ao código compilado que seu

aplicativo pode usar.

• Quando o código é compilado é gerado código em assembly que pode ser oferecido a outro desenvolvedor.

• Program.cs• Arquivo fonte do C#, ponto de entrada da aplicação.

Page 14: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 14

Identificadores

Nomes de objetos, variáveis, métodos, classes, etc.

Primeiro caractere não pode ser um número, deve ser uma letra ou um _.

Nenhum espaço é permitido. Sensíveis a letras minúsculas e maiúsculas

(case sensitive). A propriedade Name de um botão é um

identificador.

Page 15: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 15

Propriedades mais Comuns

Name• Comum a todos os componentes da paleta.

• Automaticamente nomeados usando o nome da classe do componente e um número sequencial.

• Quando um componente é renomeado, o Visual Studio atualiza automaticamente todo o código gerado por ele e as propriedades de outros componentes que fazem referência ao componente renomeado.

Page 16: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 16

Propriedades mais Comuns

Name• Não é atualizado o código gerado pelo programador.

• Portanto, se for mudar o nome do componente, mude logo no início para não dar muito mais trabalho depois.

Page 17: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 17

Propriedades mais Comuns

Text• Todos os componentes que podem apresentar um

rótulo têm esta propriedade.

• Armazena a string que será mostrada quando o componente for desenhado.

Page 18: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 18

Propriedades mais Comuns

Location • Esquerda – X e topo – Y

• Armazena a posição do componente em relação ao form ou painel que o contém.

• Movendo o componente, estas propriedades se atualizam automaticamente.

• Alterando estas propriedades, o componente é movido.

• Location(X; Y)

Page 19: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 19

Propriedades mais Comuns

Size• Altura e comprimento.

• Similar a Location.

• Size(Height, Width). BackColor

• Cor do componente. ForeColor

• Cor do texto do componente.

Page 20: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 20

Propriedades mais Comuns

Font• Permite selecionar tamanho e tipo da fonte que

sera usada para escrever o texto no componente.

Page 21: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 21

Propriedades mais Comuns

TabIndex• Ordem do componente no form ou painel.

Image• Caminho da imagem que será exibida no componente.

Visible• Determina se o componente é visível ou está escondido.

Enabled• Indica se o componente está habilidato ou desabilitado.

Page 22: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 22

Eventos

Cada objeto possui uma lista de eventos. Para visualizar os eventos de um componente

ative a paleta propriedades, selecione o componente desejado e clique sobre o ícone similar a um raio.

Page 23: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 23

Eventos

Eventos são atendidos por manipuladores (handlers) e inseridos automaticamente no código quando habilitados.

Design do form

Page 24: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 24

Eventos

A linha: this.bOn.Click += new System.EventHandler(this.bOn_Click);

foi gerada automaticamente quando inserido o evento Click na aba de eventos.

O que o evento deve fazer é por conta do programador.

Código do form

Page 25: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 25

Eventos mais Comuns

Click• Gerado cada vez que o botão esquerdo do mouse é

pressionado e solto em cima do componente.

• Só ocorre quando o usuário libera o botão. KeyPress

• Gerado quando o usuário pressiona e libera uma tecla no teclado.

• Muito usado para reconhecimento de teclas em TextBox e ListBox.

Page 26: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 26

Eventos mais Comuns

Enter• Quando o componente se torna o componente ativo

na aplicação.

• Suponha uma tela com vários campos de entrada.

• Quando a tela é apresentada o foco está sobre o primeiro campo.

• Após pressionar Tab o usuário passa para o próximo campo.

• O foco da aplicação passa para o próximo campo.

Page 27: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 27

Eventos mais Comuns

Leave• Gerado imediatamente antes de o foco deixar o

componente. Resize

• Gerado quando o tamanho do componente é alterado.

TextChanged• Quando o valor da propriedade Text do componente

muda.

Page 28: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 28

Métodos Simples

Da mesma forma que eventos, cada objeto possui sua própria lista de métodos.

Show()• Ativa o evento de renderização do form.

• É desenhado e ativado. Close()

• Aplicado geralmente em forms e arquivos.

• Quando utilizado no form principal, encerra a aplicação.

Page 29: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 29

Métodos Simples

Refresh()• Redesenhar

• Antes de redesenhar, apaga o componente.

• Quando aplicado em arquivos, faz com o buffer do mesmo seja recarregado.

Page 30: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 30

Métodos Simples

Dispose()• Libera o endereço de memória alocado com o

Create para que o Garbage Collector cuide de sua remoção.

Hide()• Esconde o objeto.

Page 31: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 31

Melhorando a Gangorra

Vamos otimizar o código da Gangorra. private void bOn_Click(object sender, EventArgs e) { bOn.Enabled = false; bOff.Enabled = true; }-----private void bOn_Click(object sender, EventArgs e) { bOn.Enabled = !bOn.Enabled; bOff.Enabled = !bOff.Enabled; }

Page 32: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 32

Melhorando a Gangorra

Operador unário ! – funciona como negação de expressão seguinte.

Passo seguinte é excluir o evento Click atribuído ao bOff.

Exclua o código-fonte inserido e depois limpe a caixa de texto ao lado do nome do evento na janela Properties (Events).

Page 33: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 33

Melhorando a Gangorra

Execute o programa e certifique-se que não existe mais evento atribuído ao bOff.

Agora vamos utilizar reusabilidade de código. Abra a caixa de texto do evento Click do bOff e

atribua o evento já existente bOn_Click.

Page 34: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 34

Debugando uma Aplicação

Primeiro passo é inserir pelo menos um breakoint para que se possa executar passo a passo o código.

Clique com o botão esquerdo do mouse na lateral cinza ao lado do código para inserir o breakpoint.

Execute o programa. Quando a execução chega na linha do

breakpoint o Visual interrompe a mesma.

Page 35: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 35

Debugando uma Aplicação

A partir deste ponto há novas janelas para serem acessadas.

Visualiza chamadas a memória

Descobrir valores locaisOutros valores observados

Page 36: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 36

Debugando uma Aplicação

Step Into = F11• Entra na método chamado

Step Over = F10• Executa a próxima instrução sem depurá-la.

Step Out = Shift + F11• Método atual continua a executar sem interrupções.

Page 37: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 37

Componentes mais Usados

Crie um novo projeto do tipo Windows Application.

Chame-o de WinControls. Altere o texto do form para Windows Controls. Inclua um componente Menu no formulário. Não é necessário alterar o nome deste Menu,

só iremos alterar nomes de componentes que sejam referenciados no código.

Page 38: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 38

Componentes mais Usados

Entre com o texto Arquivo no retângulo “type here”.

Logo abaixo, digite &Sair. Clique duas vezes no menu Sair. O evento

Click do menu Sair será adicionado. Siga a figura e a tabela para inserir os outros

componentes.

Page 39: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 39

Componentes mais Usados

Page 40: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 40

Componentes mais Usados

O Tooltip é um objeto não visual e não fica visível no formulário em tempo de desenvolvimento.

Aparece no rodapé do Visual.

Page 41: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 41

Componentes mais Usados

É hora do código. O objetivo é manipular o tamanho, estilo e cor

da fonte do label em tempo de execução, adicionar e retirar itens do Listview para o TextBox e vice-versa.

Vamos começar inserindo uma variável privada chamada fontSize do tipo int

Page 42: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 42

Componentes mais Usados

Page 43: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 43

Componentes mais Usados

Antes do usuário poder manipular a aplicação devemos ainda inserir valores para o ComboBox, o texto do label, tips para o botão e o ListBox.

Podem ser feitos de duas formas:• No evento OnLoad do formulário.

• Criando um construtor para o formulário (esta é a que faremos).

Page 44: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 44

Componentes mais Usados

Escreva o método init para ser inserido ao construtor do formulário.

Após insira uma chamada a este método no construtor.

Veja o código no próximo slide.

Page 45: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 45

Componentes mais Usados

Page 46: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 46

Componentes mais Usados

Inteligência do TextBox para a ListBox e vice-versa.

Coloque o seguinte código no evento Click do btPush.lsCommands.Items.Add(txBox.Text + " " + cbFont.SelectedItem);

Coloque o seguinte código no evento SelectedIndexChanged da ListBox.txBox.Text = lsCommands.SelectedItem.ToString();

Page 47: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 47

Componentes mais Usados

Mudar as cores do label. • Crie o evento CheckedChanged para cada um dos

radiobuttons. Siga o exemplo:

Page 48: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 48

Componentes mais Usados

Mudar a fonte para negrito.• Crie o evento CheckedChanged para o checkbox.

Siga o exemplo:

Page 49: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 49

Componentes mais Usados

Alterar o tamanho da fonte.• Ao selecionar algum item do ComboBox o programa

deve chamar o evento SelectedIndexChanged e mudar o tamanho da fonte.

Siga o exemplo:

Page 50: Programação em C# com Visual Studio.NET Prof. Alessandro Brawerman

Programação em C# 50

Componentes mais Usados

O refresh do label já está inserido no método para checar o negrito, então para evitar mais trabalho chamamos este método passando o objeto e evento como null.

Se colocássemos novo código para fazer o refresh do label no próprio método do tamanho da fonte, teríamos que verificar ainda o estado atual do label, por exemplo, se ele está em negrito ou não, cor, etc.