Programação em C# com Visual Studio .NET Prof. Alessandro Brawerman
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.
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.
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
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.
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.
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;
}
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; }
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();
}
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.
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
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.
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.
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.
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.
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.
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.
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)
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.
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.
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.
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.
Programação em C# 23
Eventos
Eventos são atendidos por manipuladores (handlers) e inseridos automaticamente no código quando habilitados.
Design do form
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
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.
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.
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.
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.
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.
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.
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; }
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).
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.
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.
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
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.
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.
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.
Programação em C# 39
Componentes mais Usados
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.
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
Programação em C# 42
Componentes mais Usados
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).
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.
Programação em C# 45
Componentes mais Usados
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();
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:
Programação em C# 48
Componentes mais Usados
Mudar a fonte para negrito.• Crie o evento CheckedChanged para o checkbox.
Siga o exemplo:
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:
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.