Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila (Iniciante 02) - Curso Program An Do Com C e Visual Studio - Net 2005
Apostila (Iniciante 02) - Curso Program An Do Com C e Visual Studio - Net 2005
NET 2005
Este e-book de autoria de Herbert Moroni Cavallari da Costa Gois, sendo comercializado diretamente ou atravs atravs mediante do do site site www.juliobattisti.com.br de leiles atravs Mercado do e
www.linhadecodigo.com.br www.mercadolivre.com.br,
Livre: email:
contato
batisti@hotmail.com ou webmaster@juliobattisti.com.br, diretamente pelo autor ou por Jlio Battisti. No Mercado Livre, somente o usurio GROZA que tem autorizao para comercializar este e-book. Nenhum outro usurio/email e/ou empresa est autorizada a comercializar este ebook.
Ao adquirir este ebook voc tem o direito de l-lo na tela do seu computador e de imprimir quantas cpias desejar. vetada a distribuio deste arquivo, mediante cpia ou qualquer outro meio de reproduo, para outras pessoas. Se voc recebeu este ebook atravs do e-mail ou via ftp de algum site da Internet, ou atravs de um CD de Revista, saiba que voc est com uma cpia pirata, ilegal, no autorizada, a qual constitui crime de Violao de Direito Autoral, de acordo com a Lei 5988. Se for este o caso entre em contato com o autor, atravs do e-mail webmaster@juliobattisti.com.br, para regularizar esta cpia. Ao regularizar a sua cpia voc ir remunerar, mediante uma pequena quantia, o trabalho do autor e incentivar que novos trabalhos sejam disponibilizados. Se voc tiver sugestes sobre novos cursos que gostaria de ver disponibilizados, entre em contato pelo email: webmaster@juliobattisti.com.br.
Visite periodicamente o site www.juliobattisti.com.br para ficar por dentro das novidades: Cursos de informtica.
Guias de Estudo para os Exames de Certificao da Microsoft. Artigos e dicas sobre Certificaes da Microsoft. Artigos sobre Carreira e Trabalho. Dicas de livros e sites sobre diversos assuntos. Simulados gratuitos, em portugus, para os exames da Microsoft.
SE
VOC
OBTEVE DO
UMA
CPIA KAZAA,
DESTE
E-BOOK OU
ATRAVS OUTRO
E-MULE,
MORPHEUS
PROGRAMA
DE
COMPARTILHAMENTO,
SAIBA QUE VOC EST COM UMA CPIA ILEGAL, NO AUTORIZADA USAR UMA CPIA NO AUTORIZADA CRIME DE VIOLAO DE DIREITOS AUTORAIS, COM PENA PREVISTA DE CADEIA
Para que voc possa acompanhar as lies deste curso necessrio que voc j tenha preenchido os seguintes pr-requisitos:
Criao de pastas e subpastas. Utilizao do mouse e do teclado. Operaes bsicas com arquivos e pastas, usando o Windows Explorer. Conhecer conceitos tais como cones, rea de trabalho, janelas do Windows, uso de menus e outras configuraes bsicas do Windows.
Palavras do autor:
A proposta desde curso ajud-lo a entrar no mundo da programao usando a linguagem C# e a ferramenta Visual Studio .NET 2005. Para tanto, no exite em fazer os exemplos propostos. Aprender a programar como dirigir, voc aprende fazendo, para isso apresentamos uma srie de exemplos passo-a-passo e conforme vamos nos aprofundando nos exemplos e as duvidas vo surgindo discutimos a teoria, assim fica mais fcil assimilar e memorizar o assunto proposto.
Tambm estou a disposio para responder eventuais dvidas sobre o contedo do curso, envie-me tambm suas sugestes para que possamos sempre melhorar o material proposto. Meu e-mail para contato herbertmoroni@hotmail.com ou moroni@weblitenet.com.br.
Ao final deste curso voc vai dominar a linguagem de programao C# e vai saber como tirar proveito dos principais recursos do Visual Studio .NET 2005,
ndice do Curso
ndice do Curso............................................................................................ 7 Introduo ................................................................................................ 10 Mdulo 1.............................................................................................................................................13 Bem vindo ao C# e ao Visual Studio.NET 2005 ..................................................................13 Lio 1 Bem vindo ao C# e ao Visual Studio .NET 2005 ........................................13 Lio 2 Usando o CSC para compilar seu programa.................................................28 Lio 3 Criando sua primeira aplicao Windows com C# e o Visual Studio .NET.................................................................................................................................................34 Lio 4 Criando documentao usando XML e cometrios.....................................47 Mdulo 2.............................................................................................................................................56 Variveis.............................................................................................................................................56 Lio 5 Entendo variveis e tipos de dados .................................................................56 Lio 6 Nomeando uma varivel ......................................................................................59 Lio 7 Palavras Reservadas do C# ................................................................................61 Lio 8 Declarando variveis .............................................................................................62 Lio 9 Atribuindo valor a variveis ................................................................................63 Lio 10 Tipos de dados ......................................................................................................64 Lio 11 Adicionando valor a uma varivel..................................................................67 Lio 12 Operadores .............................................................................................................69 Mdulo 3.............................................................................................................................................81 Mtodos e Escopo ...........................................................................................................................81 Lio 13 Entendento mtodos ...........................................................................................81 Lio 14 Entendento Escopo ..............................................................................................86 Lio 15 Criando e Chamando Mtodos.........................................................................89 Mdulo 4...........................................................................................................................................107 Estruturas de Deciso .................................................................................................................107
Lio 16 Entendendo as Estruturas de Deciso........................................................107 Lio 17 Usando o if............................................................................................................108 Lio 18 Usando o switch..................................................................................................118 Mdulo 5...........................................................................................................................................129 Estruturas de Repetio .............................................................................................................129 Lio 19 Usando o while ....................................................................................................129 Lio 20 Usando o do .........................................................................................................134 Lio 21 Usando o for.........................................................................................................138 Lio 22 Conhecendo o foreach......................................................................................143 Mdulo 6...........................................................................................................................................144 Gerenciando Erros e Excees .................................................................................................144 Lio 23 Conhecendo os trs tipos de erros ..............................................................144 Lio 24 Encontrando erros com o Visual Studio.NET 2005................................145 Lio 25 Usando a janela Watch ....................................................................................158 Lio 26 Usando a janela Command.............................................................................163 Lio 27 try..catch ...............................................................................................................166 Lio 28 Usando try...catch aninhados........................................................................176 Lio 29 Programao defensiva....................................................................................180 Lio 30 Exit try....................................................................................................................181 Mdulo 7...........................................................................................................................................183 Arrays e Colees .........................................................................................................................183 Lio 31 Usando Arrays .....................................................................................................183 Lio 32 Colees.................................................................................................................197 Mdulo 8...........................................................................................................................................205 Aprofundando em Windows Forms.........................................................................................205 Lio 33 Trabalhando com mltiplos formulrios ....................................................205 Lio 34 Passando valores entre Forms ......................................................................212 Lio 35 Posicionando os formulrios na tela............................................................217 Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 8
Lio 36 Controlando os eventos dos formulrios...................................................218 Mdulo 9...........................................................................................................................................221 Usando controles do Windows Forms....................................................................................221 Lio 37 Usando o controle dateTimePicket...............................................................221 Lio 38 Usando os controles radioButton, checkBox, listBox e comboBox..226 Mdulo 10 ........................................................................................................................................238 Bancos de dados com ADO.NET ..............................................................................................238 Lio 39 Conceitos bsicos de banco de dados ........................................................238 Lio 40 Usando o Visual Studio 2005 para manipular dados de um banco de dados. ...........................................................................................................................................245 Mdulo 11 ........................................................................................................................................260 Imprimindo......................................................................................................................................260 Lio 41 Imprimindo a partir de uma textBox ..........................................................260 Mdulo 12 ........................................................................................................................................274 Distribuindo sua aplicao.........................................................................................................274 Lio 42 Criando um projeto de instalao ................................................................275 Lio 43 Executando o programa de instalao .......................................................295
Introduo
Neste curso voc vai aprender a usar a linguagem de programao C# e utilizar seus recursos para desenvolver aplicaes para Windows atravs da ferramenta Visual Studio .NET 2005.
O C#, junto com o Visual Studio .NET 2005 compe uma ferramenta extremamente robusta e fcil de utilizar, com perfeito suporte a todas as novas ondas que rondam o mundo da informtica e tecnologia.
O Visual Studio .NET 2005 a melhor ferramenta de desenvolvimento de aplicaes para a plataforma .NET. Com uma interface amigvel e integrada com os ambientes e de fcil entendimento, proporciona aos desenvolvedores a criao de aplicaes sofisticadas com todos os recursos existentes, sem ter que ficar criando parte de cdigo em um aplicativo e o restante no outro. possivel com o Visual Studio gerenciar recursos da mquina e local e de um possvel servidor, criar aplicaes para Windows, web e dispositivos mveis.
Captulo 1: Neste captulo voc vai iniciar no desenvolvimento usando o Visual Studio .NET 2005, vai aprender a criar aplicaes Windows e a utilizar o CSC para compilar seu programa pelo prompt de comando. Vai aprender tambm como gerar documentao XML a partir de comentrios que podem ser inseridos em seus programas.
Captulo 2: Neste captulo voc vai aprender sobre variveis, tipos de dados, converso de tipos de dados, operadores, o que Common language Runtime e
Common Type System, alm disso vai receber dicas sobre como nomear suas variveis.
Capitulo 3: Neste capitulo voc vai entender o que so mtodos e escopo. Vai aprender a criar e usar mtodos.
Captulo 4: Neste captulo voc vai aprender sobre estruturas de DECISO, vai saber como usar o IF e o SWITCH.
Captulo 5: Neste captulo voc vai aprender sobre estruturas de REPETIO, vai saber como usar o WHILE, o DO, o FOR e vai conhecer o FOREACH.
Captulo 6: Neste captulo voc vai aprender como encontrar erros utilizando o Visual Studio .NET, vai tambm aprender a usar o Try..Catch..Finally para tratar seus erros em tempo de execuo. No bastando vai aprender a programar defensivamente, evitando erros.
Captulo 7: Neste captulo voc vai aprender a criar e manipular dados de Arrays e Colees.
Captulo 8: Neste captulo voc vai aprender a usar mltiplos formulrios no seu programa, passar valor entre eles, posicion-los na tela e controlar seus eventos.
Captulo 9: Neste captulo voc vai aprender a usar os controles disponveis para suas aplicaes Windows, para isso estudaremos o uso dos controles:
Captulo 10: Neste captulo voc vai aprender os conceitos principais de banco de dados e como inserir, apagar e alterar registros.
Captulo 11: Neste captulo voc vai aprender a imprimir informaes de seus programas, vai aprende tambm a implementar os recurso de configurar impresso e visualizar impresso.
Captulo 12: Neste captulo voc vai aprender como distribuir suas aplicaes criando um instalador.
Para enviar suas dvidas referentes aos assuntos e exemplos abordados neste curso, para enviar sugestes de alteraes/correes, para sugerir novos cursos, para criticar e para elogiar (porque no?), s entrar em contato pelo e-mail: moroni@weblitenet.com.br.
Neste capitulo voc vai se familiarizar com a linguagem C# e o ambiente de desenvolvimento do Visual Studio .NET 2005. Para isso vai criar uma sua primeira aplicao.
Vamos primeiramente conhecer um pouco do Visual Studio.NET, a ferramenta que utilizaremos para desenvolver nossos aplicativos e criar nosso primeiro exemplo.
1 Entre no Visual Studio.NET, eu estou usando a verso 2005, mas os exerccios funcionam em qualquer verso.
Voc pode entrar no Visual Studio.NET atravs do menu Iniciar / Programas / Microsoft Visual Studio .NET / Microsoft Visual Studio .NET , sinta-se a vontade para criar qualquer atalho para ele.
A imagem anterior mostra o Visual Studio .NET assim que o iniciamos, exibida a pagina Start Page onde podemos abrir rapidamente os ultimos projetos criados atravs da caixa Recent Projects.
A caixa de dialogo New Project aparece. Ela permite que criemos um novo projeto usando vrios templates, como um Windows Application, Class Library, Console Application e vrios outros.
3 No painel Project Type, clique em Visual C# Projects, aqui esto todos os templates disponveis para a linguagem C#.
Perceba que voc pode ainda alterar o caminho onde sua aplicao ser salva e o nome da sua Soluo.
6 Clique em OK.
A barra de menus (menu bar) possibilita o acesso aos comandos que voc usa no ambiente de programao. Voc pode usar o teclado ou o mouse para acessar o menu ou atalhos exatamente como usa em outros programas baseados em Windows.
A barra de ferramentas (toolbar) localizada embaixo da barra de menus e disponibiliza botes que executam os comandos usados com mais freqncia. No confunda toolbar com toolbox.
A janela Solution Explorer mostra os nomes dos arquivos associados com o seu projeto. Voc pode dar um clique duplo sobre o nome do arquivo para exibi-lo no painel de cdigo (Code pane). Vamos examinar os arquivos que o Visual Studio criou como parte do seu projeto:
ClassicoHelloWorld.sln organiza os projetos de cada soluo, uma soluo pode ter vrios projetos, seu nome representado no primeiro item na janela Solution Explorer s que sem a extenso do arquivo.
ClassicoHelloWorld.csproj este o arquivo do projeto C#. Pode ser associado a vrios arquivos de cdigo. reconhecido no Solution Explorer pelo nome do projeto apenas, no entanto gravado no disco com a extenso .csproj.
Program.cs um arquivo de cdigo do C#. Voc vai escrever seu cdigo neste arquivo. O Visual Studio j adicionou algum cdigo nele
AssemblyInfo.cs este um outro arquivo de cdigo do C#. Voc pode usar esse arquivo para adicionar atributos ao seu programa, como por exemplo, nome do autor, data que o programa foi escrito e outros. Vamos examina-lo tambm mais adiante no curso.
Aos poucos ns vamos explorando mais o Visual Studio, vamos ao nosso primeiro exemplo.
O arquivo Program.cs define uma classe chamada Program que contm um mtodo chamado Main. Todos os mtodos precisam ser definidos dentro de uma classe. O mtodo Main especial porque ele o primeiro a ser executado quando o programa iniciado, por isso ele precisa ser designado como static (esttico), mtodos e classes vo ser discutidos em detalhes mais adiante no curso.
Importante: O C# case-sensitive, ele diferencia letras minsculas de maisculas, um M interpretado diferente de um m. Consequentemente Main diferente de main.
Nosso primeiro exemplo bem simples, e um clssico para quem esta aprendendo qualquer linguagem, ele escreve Hello World no console.
A classe Console contm os mtodos para exibir mensagens na tela e pegar as entradas do teclado. Tudo que o usurio digita no teclado pode ser lido atravs da classe Console. A classe Console s significante para aplicaes que rodam no prompt de comando como neste nosso primeiro exemplo.
Uma lista aparece, ela chamada de IntelliSense, esse no um recurso exclusivo do Visual Studio mas ajuda muito na programao principalmente em linguagens case-sensitive, como o C#. O IntelliSense exibe todos os mtodos, propriedades e campos da classe.
9 Selecione WriteLine, voc pode usar o Mouse ou o Teclado, tecle Enter ou d um clique duplo sobre o WriteLine.
Quando o IntelliSense aparece voc tambm pode pressionar W para ir direto para o primeiro membro do mtodo Console que comear com w.
10 Abra parnteses (
mostrado uma outra forma do IntelliSense, esse mostra os parmetros do mtodo WriteLine. O mtodo WriteLine tem o que chamamos de Sobrecarga (Overload). Para cada sobrecarga do mtodo WriteLine usamos parmetros diferentes. Cada sobrecarga e seus respectivos parmetros podem ser visualizados clicando com o mouse na seta do IntelliSense teclado. ou navegando pelas setas do
12 Digite entre os parnteses a string Hello World, string deve ficar entre aspas. Vamos aprender sobre os tipos de dados em detalhes tambm, o importante agora saber que string um tipo de dado. Vai ficar assim:
Pegue o habito de digitar os pares de caracteres juntos, como ( e ) e { e }, antes de entrar com seus respectivos contedos. Assim voc evitar alguns erros por esquecer de fechar.
13 Vamos agora compilar nossa aplicao. No menu Build, clique em Build Solution. Se tudo estiver certinho vai aparecer a seguinte linha na janela Output:
Para exibir a janela Output na barra de menus clique em View, Output ou pressione Ctrl+W+O.
Um asterisco depois do nome do arquivo no painel de cdigo indica que foram feitas modificaes no cdigo do respectivo arquivo e que essas alteraes no foram salvas. Voc pode salvar manualmente antes de compilar a aplicao, mas ao compilar o Visual Studio salva automaticamente todos os arquivos da aplicao.
14 No menu Debug, clique em Start Without Debugging para executar o programa no prompt de commando.
Ns escolhemos Start Without Debugging para forar uma pausa no final da execuo. Se clicssemos em Start ele iria executar o programa e fechar o prompt de comando logo aps a execuo, seria to rpido que no conseguiramos ver o que foi escrito, experimente.
Aparecem os nomes bin e obj depois do nome do projeto. Esses dois correspondem a pastas com seus respectivos nomes. Essas pastas so criadas quando voc executa a aplicao e contem uma verso executvel do programa e outros arquivos necessrios para depurar o programa.
O arquivo ClassicoHelloWorld.vshost.exe s aparece no Visual Studio 2005, ele usado para melhorar a performance da depurao de erros.
Como vimos at agora, o Visual Studio compilou automaticamente nosso programa e criou os arquivos necessrios automaticamente, durante o processo de compilao. Em resumo a compilao o processo que transforma seus arquivos fonte em um arquivo executvel pelo sistema operacional, um .exe por exemplo.
1 - Com o Visual Studio fechado, na barra de ferramentas do windows clique em Iniciar, Executar, digite notepad em Abrir e clique em OK.
using System;
namespace txtHello {
3 Salve o arquivo com o nome teste.cs Para isso ser necessrio escolher Todos os arquivos na opo Salvar como tipo no notepad quando voc clicar em Arquivo \ Salvar.
4 Feche o notepad.
5 No menu Iniciar, v em Programas / Visual Studio .NET / Visual Studio .NET Tools e clique em Visual Studio .NET Command Prompt.
Para
compilarmos
manualmente
nosso
programa
so
necessrias
algumas
mudanas no ambiente do sistema operacional como alteraes em algumas variveis de ambiente, PATH, LIB e INCLUDE. Essas mudanas incluem adicionar pastas contendo bibliotecas e utilitrios .NET.
Ele vai listar os arquivos da pasta, no caso vai mostrar o arquivo teste.cs.
Agora voc no v apenas o arquivo teste.cs, foi adicionado um arquivo chamado hello.exe, ele o resultado da compilao do seu arquivo fonte teste.cs. Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 30
O programa ser executado, no caso, ser escrito a palavra Hello World, no prompt semelhante ao que ocorreu com o exemplo da lio 1.
Ao omitir o parmetro /out o compilador cria um arquivo executvel com o mesmo nome do arquivo fonte. Ser criado ento o arquivo teste.exe, execute este arquivo para test-lo.
13 Abra novamente o arquivo teste.cs, pode ser no prprio notepad ou no Visual Studio .NET.
namespace txtHello { class Class1 { static void Main(string[] args) { Console.WriteLine("Hello World"); } } }
15 Compile e teste a aplicao, novamente fica a sua escolha, use o prompt de comando ou o Visual Studio .NET. Uma recomendao, compile manualmente pelo
prompt para se familiarizar melhor com ele, j que no falaremos muito mais sobre ele no curso.
teste.cs(7,4): error CS0246: The type or namespace name 'Console' could not be found (are you missing a using directive or an assembly reference?)
17
Mude
linha
com
Console.WriteLine("Hello
World");
para
System.Console.WriteLine("Hello World");
A compilao concluda com sucesso e o programa funciona normalmente s que desta vez sem a diretiva using System;
Como parte do Microsoft .NET Framework o C# pode fazer uso de uma srie de classes de utilidades que executam uma gama de operaes teis. Essas classes so organizadas no que chamamos de namespaces, eles contem um conjunto de classes relacionadas e tambm podem conter outros namespaces.
System um namespace. O namespace System o mais importante porque contm as classes que a maior parte das aplicaes utiliza para interagir com o sistema operacional.
O mtodo Writeline um mtodo da classe console que escreve uma mensagem no prompt de comando.
Programas pequenos e crianas pequenas tm uma coisa obvia em comum, eles crescem. Com o crescimento de um programa surgem dois problemas:
1 - Quanto mais cdigo maior a complexidade do programa e mais difcil sua manuteno.
2 - Mais cdigo usualmente representa mais nomes de dados, funes, classes, etc. Facilitando os erros por conter nomes iguais.
Os namespaces tem a funo de ajudar a solucionar esses dois problemas. Para usar um namespace lembre-se que necessrio fazer uma referencia ao mesmo atravs de uma diretiva using seguido do nome do namespace no comeo do bloco de cdigo. Voc pode fazer referencia a vrios namespaces no seu arquivo de cdigo. Um em cada linha. Um aps o outro.
Lio 3 Criando sua primeira aplicao Windows com C# e o Visual Studio .NET
At agora por motivo didtico usamos somente o prompt de comando para criar os nossos exemplos. Como sabemos esse tipo de aplicao no muito til nos dias de hoje. O Visual Studio .NET conta com diversos recursos importantes para o desenvolvimento de aplicaes Windows.
2 Crie um novo projeto, s que desta vez do tipo Windows Application, chamado WinHello.
O Visual Studio .NET cria e mostra um formulrio baseado em Windows no modo Design.
3 Na barra de ferramentas do Visual Studio .NET clique em ToolBox. O cone da ToolBox aparece a esquerda do formulrio. Voc tambm pode localizar a ToolBox atravs do menu View > ToolBox.
4 Arraste da barra de ferramentas o controle Label e posicione-o no canto superior esquerdo do formulrio.
Para colocar um controle no formulrio voc pode tambm dar um clique duplo sobre ele na barra de ferramentas ou clicar uma vez sobre ele na barra de ferramentas e depois clicar no formulrio. O clique duplo posiciona o controle no canto superior esquerdo. A segunda opo coloca o controle no local onde voc clicar.
5 Coloque tambm no formulrio um controle TextBox e um controle Button. Como na prxima ilustrao:
Para voltar ao modo design, tambm na janela Solution Explorer clique em View Design.
Form1.cs tem todo o cdigo gerado automaticamente pelo Visual Studio .NET. Note os seguintes elementos no cdigo.
using System; Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 39
using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;
O Visual Studio .NET usa o mesmo nome do projeto para criar o namespace principal.
namespace WinHello { }
O constructor (construtor), um mtodo especial que tem o mesmo nome da classe. Ele o primeiro mtodo a ser executado quando o programa iniciado.
Um mtodo chamado InitializeComponent. O cdigo dentro deste mtodo configura as propriedades dos controles que adicionamos no modo Design. Ateno, no modifique o contedo do InitializeComponent diretamente no cdigo, use a janela Properties no modo Design. Vamos aprender mais sobre os mtodos nos prximos tutoriais. Este mtodo esta no arquivo
private void InitializeComponent() { this.label1 = new System.Windows.Forms.Label(); this.button1 = new System.Windows.Forms.Button(); this.textBox1 = new System.Windows.Forms.TextBox(); this.SuspendLayout(); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(13, 13); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(35, 13); this.label1.TabIndex = 0; this.label1.Text = "label1"; // // button1 // this.button1.Location = new System.Drawing.Point(150, 50); this.button1.Name = "button1"; Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 42
this.button1.Size = new System.Drawing.Size(75, 23); this.button1.TabIndex = 1; this.button1.Text = "button1"; this.button1.UseVisualStyleBackColor = true; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(16, 50); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(100, 20); this.textBox1.TabIndex = 2; // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(292, 273); this.Controls.Add(this.textBox1); this.Controls.Add(this.button1); this.Controls.Add(this.label1); this.Name = "Form1"; this.Text = "Form1"; this.ResumeLayout(false); this.PerformLayout();
}...
Para voltar ao modo design, tambm na janela Solution Explorer clique em View Design.
Se no localizar a janela Properties, clique em F4, ou no menu View, clique em Properties Window.
Note que as propriedades modificadas na janela Properties ficam em negrito. Assim voc pode saber se elas esto com seu valor padro ou no.
Note que aparecem alguns marcadores envolta do formulrio. Eles ajudam a redimensionar o formulrio.
13 - Clique sobre o marcador central na parte de baixo do Form1 e mantendo o boto pressionado arraste para cima.
Isso serve para os outros controles tambm, clique sobre os outros controles e note os marcadores.
Note que ele vai diretamente para o painel de cdigo e criado automaticamente o seguinte cdigo.
Tudo que for digitado dentro deste cdigo ser executado assim que o Button1 for clicado quando o programa estiver executando.
Tenha ateno com esse cdigo, ele deve ser digitado exatamente como se segue, lembre-se que o C# case-sensitive. necessrio tambm o ponto-e-virgula no final da linha.
16 Execute o programa.
Para executar o programa voc pode clicar e F5, ou no menu Debug clicar em Start Debugging.
Automaticamente o Visual Studio .NET salva o programa, compila e o executa. A seguinte janela aparece:
1 Entre no Visual Studio .NET e crie uma Console Application chamada Documentacao.
2 No painel de cdigo modifique o nome da classe de Program para BemVindos, no pode haver espaos entre as palavras quando se nomeia uma classe.
3 Adicione o seguinte cdigo dentro do namespace Documentacao: /// <summary> /// <remarks> /// Este programa escreve "Hello World" /// usando o mtodo WriteLine da /// Classe Syste.Console Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 48
/// The main entry point for the application. /// </remarks> /// </summary>
4 Dentro do mtodo Main digite o cdigo que escreve Hello World no prompt de comando. Se tiver duvida consulte a lio 1.
Se voc for verificar o nome do arquivo pelo Explorer do Windows ver que o nome do arquivo foi realmente modificado.
Mudao o nome da classe no muda o nome do arquivo, uma boa pratica sempre mudar o nome do arquivo aps a mudana do nome da classe.
10 Atravs do Explorer do Windows, v at a pasta do programa e de um clique duplo sobre o arquivo Hello.xml
Voc vai visualizar o cdigo XML com os comentrios que inserimos no cdigo no Internet Explorer.
Existe uma variedade enorme de tags XML que podem ser usadas na documentao do cdigo, iremos listar as mais usadas logo abaixo.
O comentrio XML sempre adicionado aps barras triplas, ou seja, uma barra a mais que usamos para comentar o cdigo, como o exemplo abaixo:
/// <remarks> /// Este programa escreve "Hello World" /// usando o mtodo WriteLine da /// Classe Syste.Console /// The main entry point for the application. /// </remarks>
Abaixo segue uma lista das tags XML mais usadas. Lembre-se que com XML voc pode criar suas prprias tags.
classe, mtodo ou propriedade. <remarks> </remarks> <para> ... </para> Para uma descrio mais detalhada. Permite delinear pargrafos dentro da tag <remarks> <list type=""> </list> Permite usar marcadores para formatar uma descrio. Os tipos de marcadores podem ser bullet, number e table. <example> </example> Para disponibilizar um exemplo de como usar um mtodo, propriedade ou outro membro da biblioteca. <code> </code> Para indicar que o texto includo cdigo da aplicao. <c> </c> Para indicar que o texto includo cdigo da aplicao. usada para linhas de cdigo que precisam ser separadas da descrio. <see cref="member"/> Indica uma referencia a outro membro ou campo. O compilador verifica se o membro realmente existe. <exception> </exception> <permission> </permission> <param name="name"> </param> Para fazer a descrio de uma exceo. Para documentar a acessibilidade. Para documentar um parmetro de um
mtodo. <returns> </returns> Para documentar um valor e seu tipo retornado de um mtodo. <value> </value> Para descrever uma propriedade.
Existe uma maneira mais fcil de gerar sua documentao XML, usando o Visual Studio sem precisar do prompt de comando.
11 Na janela Solution Explorer, clique com o boto direito do mouse e selecione Properties, como a imagem seguinte.
12 Na janela que se abre, clique na guia Build e marque a opo XML Documentation file, como na prxima imagem. Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 54
Seu arquivo de documentao gerado. Voc pode alterar o nome do arquivo que ser gerado na caixa de texto que segue a opo XML documentation file, pode alterar tambm o caminho do local onde o arquivo ser gerado. Por padro ele tem o mesmo nome do projeto e criado na pasta bin\debug dentro do projeto.
Voc pode agora ir clicar em Show All Files na janela Solution Explorer e navegar at o local onde o arquivo XML foi criado para visualiz-lo.
Mdulo 2 Variveis
Antes de falarmos sobre os tipos de dados vamos conhecer um pouco mais da plataforma .NET.
Uma aplicaes desenvolvida utilizando uma linguagem de programao como Delphi ou Visual Basic executada encima do sistema operacional, ou seja, ela acessa DLLs, APIs e outros recursos diretamente do sistema operacional.
Isso no acontece com o .NET, esse acessa seus recursos do .NET Framework. O .NET Framework um conjunto de DLLs que disponibiliza os recursos que podem ser usados na plataforma .NET.
O objetivo do .NET Framework simplificar o desenvolvimento de software. Alguns dos seus benefcios so:
Baseado em padres WEB: suporta a maioria das tecnologias disponveis para a Internet incluindo HTML, XML, SOAP, XSLT, XPath, e outros.
Modelo de aplicao unificado: as classes do .NET Framework esto disponveis para qualquer linguagem com suporte plataforma.
Fcil de se usar: o cdigo organizado hierarquicamente em namespaces e classes. Os tipos de dados so unificados entre as linguagens compatveis com a plataforma. Vamos estudar melhor sobre os tipos de dados. Namespaces e classes vo ser tratados no futuro.
Classes extensveis: A hierarquia do .NET Framework no oculta ao desenvolvedor, voc pode acessar e extender classes do .NET Framework (menos as classes seladas) usando herana.
Voc vai entender melhor os benefcios do .NET Framework durante o curso. Como voc pode ver ele muito importante para a plataforma .NET.
Por sua vez, um dos principais componentes do .NET Framework a CLR ou Common Language Runtime. A CLR fornece vrios benefcios para o
Estes benefcios esto disponveis em qualquer linguagem criada para a CLR. Isto quer dizer que a CLR pode servir a uma variedade de linguagens e pode oferecer um conjunto comum de ferramentas para estas linguagens. A Microsoft criou o C# e o VB .NET, como as principais linguagens para a CLR.
Quando um compilador compila para a CLR, o cdigo chamado de cdigo gerenciado. Cdigo gerenciado simplesmente cdigo que tira vantagem dos servios oferecidos pela CLR.
Quando voc declara uma varivel no C# voc precisa determinar qual tipo de dado ser armazenado nela. O tipo de dado vai dizer quais valores so possveis de se armazenar nessa varivel.
Quem define as regras para os tipos de dados como declarao, uso e gerenciamento dos tipos o CTS ou common type system que faz parte do CLR.
Atravs do CTS possvel o desenvolvimento em linguagens diferentes na mesma plataforma e ter total integrao entre elas, alm disso, ele responsvel por garantir o tipo de dado e aumentar o desempenho da execuo.
A referencia aos dados de uma varivel pode ser feita de duas maneiras:
A principal diferena entre os dois tipos que quando voc faz referencia a uma varivel Value-Type ela contm diretamente um dado, enquanto uma varivel Reference-Type contm uma referencia ao dado. Vamos analisar um pouco melhor esses dois tipos de variaveis:
Value-Type Contm diretamente o dado. Cada copia da varivel contm uma copia do dado. Operaes em uma varivel no afetam a sua cpia. Exemplos structures. de variveis Value-Type so: integers, doubles, floats, e
Reference-Type Armazenam uma referencia ao dado(conhecido como objetos) Duas variveis Reference-Type podem conter referencia a um mesmo objeto. Operaes em uma afetam a outra. Exemplos de Reference-Type so: strings, arrays, e classes.
Vamos aprender agora como declarar variveis, seus principais tipos e como atribuir e recuperar valores delas.
A documentao do Microsoft .Net Framework da as seguintes recomendaes para a nomeao das variveis:
No crie variveis que apenas se diferenciem apenas pela sua forma. Exemplo: minhaVariavel e outra chamada MinhaVariavel;
Quando o nome tiver mais que uma palavra, a primeira letra de cada palavra aps a primeira deve ser maiscula (conhecido como notao camelCase);
Conveno PascalCasing
Para usar a conveno PascalCasing para nomear suas variveis, capitalize o primeiro caractere de cada palavra. Exemplo:
void InitializeData();
A microsoft recomenda usar o PascalCasing quando estiver nomeando classes, mtodos, propriedades, enumeradores, interfaces, constantes, leitura e namespaces. campos somente
Conveno camelCasing
Para usar esse tipo de conveno, capitalize a primeira letra de cada palavra menos da primeira. Como o exemplo: Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 60
int loopCountMax;
A Microsoft recomenda usar essa conveno na nomeao de variveis que definem campos e parmetros.
Para
maiores
informaes
sobre
conveno
de
nomes
pesquise
Naming
A linguagem C# reserva setenta e cinco palavras para seu prprio uso. Estas palavras so chamadas de palavras reservadas e cada uma tem um uso particular.
fixed goto int lock null override public sbyte stackalloc switch
for implicit internal namespace operator private ref short string throw
No painel de cdigo do Visual Studio .NET as palavras reservadas so identificadas pela cor de letra azul.
Quando declaramos uma varivel, alocamos espao para a mesma na memria do computador. Sempre que declaramos uma varivel precisamos dizer que tipo de dado pode ser armazenado nela. O tipo de dado indica qual o tamanho do espao vai ser reservado para a varivel.
O C# pode armazenar diferentes tipos de dados: como inteiros, nmeros de ponto flutuante, textos e caracteres.
int contador;
Esse exemplo declara uma varivel chamada contador do tipo integer. Ou seja, ela dever armazenar nmeros inteiros, mais a frente estudaremos melhor o que armazenar em cada tipo de dado.
Podemos tambm declarar mltiplas variveis de uma vez, fazemos isso da seguinte maneira:
Estamos declarando nesse exemplo duas variveis do tipo integer, uma chamada contador e a outra numeroCarro.
Depois de declarar sua varivel voc precisa atribuir um valor a ela. No C# voc no pode usar uma varivel antes de colocar um valor nela, isso gera um erro de compilao.
int numeroFuncionario;
numeroFuncionario = 23;
Primeiro ns declaramos nossa varivel do tipo integer. Depois atribumos o valor 23 a ela. Entendemos pelo sinal de igual como recebe. Assim numeroFuncionario recebe 23.
Isso faz mesma coisa que o exemplo anterior, s que tudo em uma linha.
Mais um exemplo:
char letraInicial = M;
C# Type bool byte sbyte char decimal double float int uint long ulong object short ushort string
.NET Framework type System.Boolean System.Byte System.SByte System.Char System.Decimal System.Double System.Single System.Int32 System.UInt32 System.Int64 System.UInt64 System.Object System.Int16 System.UInt16 System.String
Cada tipo no C# um atalho para o tipo do Framework. Isso quer dizer que se declararmos a varivel desta forma:
string nome;
ou dessa forma
System.String nome;
teremos o mesmo resultado. O atalho serve apenas para facilitar na hora de desenvolver a aplicao.
A seguinte tabela mostra os tipos de variveis e os valores possveis de se armazenar em cada uma delas.
C# Type bool byte sbyte char decimal double float int uint long
Valores possveis de se armazenar Verdadeiro ou Falso (Valores booleandos) 0 a 255 (8 bits) -128 a 127 (8 bits) Um caractere (16 bits) 1.0 1028 a 7.9 1028 (128 bits) 5.0 10324 a 1.7 10308 (64 bits) 1.5 1045 a 3.4 1038 (32 bits) -2,147,483,648 a 2,147,483,647 (32 bits) 0 a 4,294,967,295 (32 bits) 9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 (64 bits)
0 a 18,446,744,073,709,551,615 (64 bits) Qualquer tipo. -32,768 a 32,767 (16 bits) 0 a 65,535 (16 bits) Seqncia de caracteres (16 bits por caractere)
Todos os tipos na tabela com exceo dos tipos object e string so conhecidos como tipos simples. Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 66
Para retornar o tipo de qualquer varivel do C# voc pode usar o mtodo GetType(); Como no exemplo:
Console.WriteLine(minhaVariavel.GetType());
muito comum precisarmos adicionar ou subtrair valores de uma varivel usando no calculo o valor que j esta armazenado na mesma.
O cdigo seguinte declara uma varivel do tipo integer chamada contador e armazena o valor 2 nesta varivel, depois incrementa o valor 40:
A resposta 42, claro, criamos a varivel, adicionamos o valor 2 nela e aps, pegamos o valor dela (que era 2) e adicionamos 40, e armazenamos o valor na mesma.
Perceba que para somar o valor a varivel precisamos repetir o nome da varivel.
contador += 40;
contador -= 23;
Na verdade voc pode fazer isso com todos os operadores aritmticos, como multiplicao e diviso tambm. Voc vai aprender sobre operadores no prximo capitulo.
Para saber mais voc pode consultar a documentao do Visual Studio e procurar por assignment.
Embora no tenhamos feito nenhum exerccio at aqui neste capitulo voc aprendeu como declarar uma varivel, de que forma nomear as variveis, quais as palavras que no podem ser usadas na nomeao de variveis e quais os tipos de Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 68
dados e valores que eles suportam. Os exerccios sobre esse contedo sero feitos sempre, j que sempre faremos uso de variveis em nossos programas, assim fique tranqilo aos pouco isso ser bem familiar a voc.
Lio 12 Operadores
Operadores Aritmticos:
O C# suporta os smbolos aritmticos que todos ns conhecemos para as operaes aritmticas bsicas como adio (+) e subtrao (-), ele utiliza o asterisco (*) para multiplicao e barra pra frente (/) para diviso. Esses smbolos so chamados operadores, e operam os valores das variveis. Exemplo:
Entretanto voc no pode usar os operadores para qualquer tipo de dado. Os operadores matemticos, por exemplo, s podem ser usados para os tipos char, int, long, float, double e decimal. Eles no podem ser usados para string e bool.
Exemplo:
Console.WriteLine(Londrina So Paulo); Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 69
Isso vai gerar um erro porque voc no pode subtrair uma string de outra.
Console.WriteLine(43 11);
Isso tambm vai gerar um erro, porque valores entre aspas so sempre strings, para efetuar a subtrao o correto :
Console.WriteLine(43 11);
1 Crie um novo projeto no Visual Studio do tipo Windows Application chamado Operadores.
2 Arraste para o Form1 os seguintes controles: 3 Label 3 TextBox 1 Button 1 GroupBox 5 RadioButton
Controle Label1
Propriedade Text
Valor Valor1
Valor2 Resultado Calcular Operador + Adio - Subtrao * Multiplicao / Diviso % Resto Diviso
5 Execute a aplicao.
Clique na TextBox1, pressione a tecla Tab do teclado, verifique que conforme voc clica na tecla ele passa de um controle a outro.
Clique sobre os operadores, veja que voc s pode selecionar um, essa uma caracterstica do controle RadioButton que no tinha sido usado at aqui. A GroupBox agrupa todos os RadioButtons dentro dela de forma que apenas um deles pode ser selecionado.
6 Finalize a execuo, para isso voc pode simplesmente fechar a janela do Form1 ou clicar no boto Stop Debugging na barra de ferramentas.
7 - Vamos agora digitar o cdigo que efetuar os clculos, esse cdigo vai ser executado quando o boto Calcular for clicado. De um clique duplo sobre o Button1 para digitarmos o seguinte cdigo. (Ateno na hora de digitar, lembre-se que o C# case-sensitive ou seja, diferencia maisculas de minsculas).
if (radioButton1.Checked) { resultado = primeiroValor + segundoValor; textBox3.Text = resultado.ToString(); } else if (radioButton2.Checked) { resultado = primeiroValor - segundoValor; textBox3.Text = resultado.ToString(); } else if (radioButton3.Checked) { resultado = primeiroValor * segundoValor; textBox3.Text = resultado.ToString(); } else if(radioButton4.Checked) { resultado = primeiroValor / segundoValor; textBox3.Text = resultado.ToString(); } else if(radioButton5.Checked) { resultado = primeiroValor % segundoValor; textBox3.Text = resultado.ToString(); } Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 74
Esse procedimento executado sempre que o Button1 clicado. Sendo assim quando o boto clicado, primeiro:
Declaramos as variveis primeiroValor, segundoValor e resultato do tipo Long. O tipo Long usado aqui porque armazena uma grande variedade de nmeros. Perceba que declaramos as trs variveis em apenas uma linha de cdigo.r.
Como o valor que esta na caixa de texto do tipo string convertemos para int usando int.Parse. Voc pode usar o mtodo Parse sempre que precisar converter um tipo de dados em outro. Para usa-lo digite o tipo do dado ponto Parte como o exemplo acima ou o seguinte exemplo:
long.Parse(textBox2.Text); Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 75
Voltando ao nosso exemplo, depois de atribuir os valores as variveis vamos verificar qual operao executar, para isto usamos a propriedade checked de cada RadioButton.
if (radioButton1.Checked)
ou
else if (radioButton2.Checked)
Se o valor da propriedade Checked do RadioButton for True quer dizer que ele esta selecionado, ento executamos o calculo correspondente ao RadioButton
Agora atribumos o valor da varivel resultado propriedade Text do textbox3 para que seja exibida na tela.
textBox3.Text = resultado.ToString();
Perceba que precisamos converter o valor da varivel resultado para String. Fizemos isto utilizando o mtodo ToString. Voc pode usar o mtodo ToString sempre que precisar converter um tipo de dados para string.
8 Execute o programa.
Subtrao:
Multiplicao:
Diviso, perceba que ele retorna um resultado em inteiro, o numero inteiro mais prximo do resultado:
Resto da Diviso, perceba que ele retorna o resto da diviso, 9 dividido por dois resulta em 4 com resto 1.
10 Pare a aplicao.
Precedncia de Operadores:
Operaes dentro dos parnteses so sempre executadas primeiro, como nas operaes matemticas.
Em C#, operadores multiplicativos (*, /, %) tem precedncia sobre os aditivos (+, -).
2+3*4
2+3*4
2 + 12
14
(2 + 3) * 4
(2 + 3) * 4
5*4
20
Perceba que a ordem de precedncia altera o valor do resultado, por isso devemos ter ateno com a precedncia.
Nesta lio aprendemos a fazer operaes aritmticas em nossos programas, alem disso aprendemos sobre precedncia de operadores.
Mtodo uma seqncia nomeada de instrues. Cada mtodo tem um nome e um corpo. O corpo contem as instrues que vo ser executadas quando o mtodo for chamado. O nome do mtodo deve ajudar a identificar seu propsito, ex: CalcularImpostoVenda.
A maioria dos mtodos recebe dados, processa-os e retorna a informao ou o resultado do processamento. Mtodo um mecanismo fundamental e poderoso.
tipoDeRetorno o tipo de dado que vai ser retornado pelo mtodo aps sua execuo. Pode ser o nome de qualquer tipo como int ou string. Se o seu mtodo no for retornar valor algum, voc precisa usar a palavra reservada void aqui, especificando que o mtodo no retorna nada.
nomeDoMetodo o nome que vai ser usado para chamar o mtodo. Este nome deve seguir as mesmas recomendaes usadas nos nomes das variveis. Procure usar notao camelCasing para nomear os mtodos e tambm procure utilizar um verbo na primeira palavra do nome, para ajudar a identificar o que o mtodo faz.
ListaDeParametros descreve o tipo e os nomes das informaes opcionais que o mtodo recebe. Voc escreve os parmetros dentro dos parnteses como se fosse declarar variveis: nome do tipo seguido pelo nome do parmetro. Se o seu mtodo tiver mais que um parmetro, separe-os com vrgula.
Corpo do mtodo linhas de cdigo que vo ser executadas quando o mtodo chamado.
Abaixo um exemplo de um mtodo chamado AdicionarValores que retorna um numero inteiro (int) e recebe dois nmeros inteiros como paramentos.
int adicionarValores (int numeroPequeno, int numeroGrande) { //... // corpo do mtodo deve ser feito aqui //... }
Abaixo um segundo exemplo, de um mtodo chamado mostrarResultado que no retorna nenhum valor, e recebe um simples parmetro chamado pergunta do tipo int. void mostrarResultado (int pergunta) { // ... }
Lembre-se de usar a palavra reservada void quando o mtodo no for retornar nada.
Se voc quer que seu mtodo retorne uma informao (em outras palavras que retorne um tipo e no um void), voc precisa escrever um cdigo de retorno dentro do mtodo.
Para isso voc usa a palavra reservada return, seguida da expresso que calcula o valor a ser retornado. Ateno, porque o resultado da expresso deve ser do mesmo tipo que o especificado como tipoDeRetorno do mtodo, seno o programa no vai compilar.
Por exemplo: int adicionarValores (int numeroPequeno, int numeroGrande) { //... return numeroPequeno + numeroGrande; }
O retorno do mtodo deve estar no final do mtodo porque ele causa a finalizao do mtodo. Qualquer cdigo depois da linha que faz o retorno no vai ser executado.
Se voc no quer que seu mtodo retorne informao alguma (do tipo void), voc pode uma variao da palavra reservada return para causar o encerramento imediato do mtodo, para isso digite return seguido de ponto-e-vrgula.
Por exemplo: void mostrarResultado (int pergunta) { ... if (...) return; ... }
Se o seu mtodo no precisar retornar nada voc pode simplesmente omitir o return, porque o mtodo vai ser finalizado automaticamente quando a ultima linha de cdigo do corpo for executada.
Chamando mtodos:
Mtodos existem para serem chamados. Voc chama um mtodo pelo seu nome para ele executar uma tarefa. Se esse mtodo precisa de informaes para realizar sua tarefa (parmetros), voc precisa enviar essas informaes pra ele. Se o
mtodo retornar uma informao, voc precisa ter uma forma de receber essa informao, como uma varivel, por exemplo.
nomeDoMetodo (listaDeArgumentos
opcional)
nomeDoMetodo precisa ser exatamente igual ao nome do mtodo que voc esta chamando, lembre-se que o C# case-sensitive ou seja, diferencia maisculas de minsculas.
listaDeArgumentos informaes adicionais que o mtodo aceita, voc precisa passar um valor para cada parmetro e este valor precisa ser compatvel o tipo correspondente ao parmetro. Se o mtodo que voc esta chamando tiver dois ou mais parmetros, voc precisa separar os valores com vrgula.
Importante: Voc precisa escrever os parnteses ao final de cada mtodo, mesmo que l no tiver parmetro algum.
int adicionarValores (int numeroPequeno, int numeroGrande) { //... return numeroPequeno + numeroGrande; }
Este mtodo tem dois parmetros entre os parnteses, para cham-lo, faa assim: adicionarValores(39,3) Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 85
Esta a maneira correta de chamar o mtodo, se voc tentar das seguintes formas no vai conseguir:
O mtodo adicionarValores retorna um numero inteiro. Este valor inteiro pode ser usado em qualquer lugar que uma variavel int puder ser usada.
No primeiro exemplo atribumos o retorno a uma varivel chamada resultado. No segundo atribumos o resultado a outro mtodo, que vai utilizar este resultado como parmetro para sua execuo.
Voc viu que pode criar uma varivel dentro de um mtodo. A varivel criada na cdigo que a define, e outros cdigo no mesmo mtodo que vm depois podem usar a varivel. Em outras palavras, uma varivel pode ser usada s em certos lugares depois de que ter sido criada. Uma vez que o mtodo terminou, a varivel desaparece completamente. Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 86
Se uma varivel pode ser usada em um local particular em um programa, ela parece estar no escopo daquele local. O escopo de uma varivel simplesmente a regio do programa em que ela utilizvel. O escopo se aplica a mtodos como tambm a variveis. O escopo de uma varivel ligado ao local da sua declarao que introduz a mesma no programa, como voc aprender agora.
As chaves determinam onde comea e onde termina o corpo do mtodo. Elas tambm determinam o escopo do mtodo. Qualquer varivel criada dentro do corpo do mtodo faz parte do escopo do mtodo. Estas variveis so chamadas de variveis locais porque so locais ao mtodo onde so declaradas. Elas no podem ser usadas no escopo nenhum outro mtodo, por isso voc no pode usar variveis locais para armazenar informaes entre mtodos. Quando um mtodo acaba sua execuo ele finaliza as variveis que ele criou.
Por exemplo: class Exemplo { void mtodo() { int variavel; ... } void outroMetodo() { variavel = 42; // isso gera um erro de compilao
} }
O erro mostrado acima porque a varivel foi criada dentro de um mtodo diferente da qual esta sendo usada.
As chaves determinam onde comea e onde termina o corpo da classe e determinam seu escopo. Assim sendo, qualquer varivel que voc criar dentro do corpo da classe (mas que no estejam dentro do mtodo), fazem parte do seu escopo. Em C# o nome correto desse tipo de varivel campo. Em contraste as variveis locais voc pode usar os campos para armazenar informaes entre os mtodos.
void mtodo() { campo = 42; ... } void outroMetodo() { campo = 44; Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 88
} }
Em um mtodo voc precisa declarar uma varivel antes de us-la. Campos so diferentes, um mtodo pode usar um campo antes de ser definido algum valor para ele.
1 Crie uma aplicao no Visual Studio .NET do tipo Console Application chamada Metodo.
2 No painel de cdigo crie digite o seguinte cdigo que cria o mtodo lerDouble dentro da classe Program.
public double lerDouble(string inicie) { Console.Write(inicie); string linha = Console.ReadLine(); return double.Parse(linha);
Esse mtodo escreve no console o texto que enviado para ele como parmetro. Depois armazena na varivel linha o numero digitado pelo usurio e o retorna.
Digite o seguinte cdigo, voc pode digit-lo em qualquer local desde que esteja dentro da Classe no nosso caso a Program.
public int lerInteiro(string inicio) { Console.Write(inicio); string linha = Console.ReadLine(); return int.Parse(linha); }
Esse mtodo faz a mesma coisa que o mtodo lerDouble, s que retorna uma integer (inteiro).
namespace Metodo { class Program Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 91
{ public double lerDouble(string inicie) { Console.Write(inicie); string linha = Console.ReadLine(); return double.Parse(linha);
public int lerInteiro(string inicio) { Console.Write(inicio); string linha = Console.ReadLine(); return int.Parse(linha); }
5 Novamente menu Build clique em Build Metodo ou pressione Ctrl+Shift+B. E verifique se ocorre erros, se ocorrer verifique seu cdigo comparando-o ao acima. Lembre-se novamente que o C# case-sensitive, ou seja, diferencia maisculas de minsculas.
6 Vamos criar mais um mtodo, este mtodo possui mais de um parmetro: Segue as caractersticas do nosso mtodo:
Esse mtodo retorna a multiplicao dos dois parmetros que so enviados para ele.
Esse mtodo escreve no console a multiplicao do parmetro que enviado para ele com 1.1
namespace Metodo { class Program { public double lerDouble(string inicie) { Console.Write(inicie); string linha = Console.ReadLine(); return double.Parse(linha);
public int lerInteiro(string inicio) { Console.Write(inicio); string linha = Console.ReadLine(); return int.Parse(linha); }
8 Clique em Build Metodo no menu Build para verificar se compila corretamente. Tudo certo? Vamos usar os mtodos que criamos.
Chamando Mtodos
9 Crie um novo mtodo que no retorna nada, ou seja, do tipo void. De o nome dele de Executar
public void executar() { double taxadiaria = lerDouble("Digite a taxa diaria: "); int dias = lerInteiro("Digite o numero de dias: "); escrever(calcular(taxadiaria,dias)); }
Na primeira linha de cdigo criamos uma varivel do tipo double e atribumos a ela o mtodo lerDouble.
Na segunda linha criamos uma varivel do tipo int e atribumos a ela o mtodo lerInteiro.
Na terceira linha de cdigo chamamos o mtodo escrever e passamos para ele como parmetro o mtodo calcular.
10 No mtodo Main (primeiro mtodo executado pelo programa) digite o seguinte cdigo:
(new Class1()).executar();
Isso vai executar o mtodo executar assim que o programa for iniciado
O Visual Studio compila o programa e o executa. Uma janela console aparece. Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 96
A taxa : 5197,5
Vou digitar o cdigo fonte todo utilizado para voc poder verificar caso haja algum problema e vamos depurar nosso programa para entender melhor como ele funciona.
namespace Metodo { class Program { public double lerDouble(string inicie) { Console.Write(inicie); string linha = Console.ReadLine(); return double.Parse(linha);
public int lerInteiro(string inicio) { Console.Write(inicio); string linha = Console.ReadLine(); return int.Parse(linha); }
public void executar() { double taxadiaria = lerDouble("Digite a taxa diaria: "); int dias = lerInteiro("Digite o numero de dias: "); escrever(calcular(taxadiaria, dias)); }
static void Main(string[] args) { (new Program()).executar(); Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 98
} } }
O depurador ou debug um programa desenvolvido para ajudar o programador na verificao e correo de erros. Ele vem embutido no Visual Studio e vamos utilizlo para compreender melhor como funciona nosso programa, ele permite a execuo do programa passo-a-passo.
17 Clique com o boto direito do mouse sobre ela, no menu que se abre clique em Run To Cursor.
O programa executado at chegar nessa linha de cdigo. Neste momento a execuo pausada e uma seta amarela indica que chegou linha selecionada.
Como vimos no mtodo executar nossa primeira linha de cdigo cria uma varivel do tipo Double e atribui a ela o resultado do mtodo lerDouble. Quando essa linha de cdigo executada o mtodo lerDouble chamado e o resultado do seu cdigo vai ser atribudo a varivel taxaDiaria, se a variavel for de um tipo diferente do tipo que o mtodo vai retornar ento temos um erro.
O controle retorna ao Visual Studio e a seta amarela fica sobre a linha que chama o mtodo lerDouble no mtodo executar. Ou seja, ele executou o mtodo lerDouble e voltou para o mtodo executar.
Perceba que agora a seta se move para a primeira linha de cdigo do mtodo escrever. Isso aconteceu porque na seguinte linha de cdigo chamamos um mtodo e passamos como parmetro para ele um outro mtodo.
escrever(calcular(taxadiaria,dias));
Aqui o mtodo escrever recebe como parmetro o mtodo calcular, antes de ser executado o mtodo escrever executado o mtodo calcular, seu resultado ento enviado ao mtodo escrever para ser processado.
O cursor se move para o fim do mtodo executar. O resultado do programa exibido na tela conforme a figura: Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 105
Parabns, voc escreveu mtodos e os chamou com sucesso, alem disso usou o depurador do Visual Studio .NET.
A ESTRUTURA DE DECISO sem dvida, a mais utilizada na programao. O objetivo identificar o contedo de uma condio e direcionar o fluxo do programa para um determinado clculo, rotina, desvio, funo, etc.
Primeiramente vamos entender o que uma EXPRESSO CONDICIONAL. Esta uma expresso que sempre retorna um valor boleano, ou seja, VERDADEIRO ou FALSO.
Exemplo:
Se preo for menor que 100 ento o resultado da expresso acima VERDADEIRO. Caso contrario o resultado FALSO.
Voc pode usar os seguintes operadores para fazer comparaes em C#: (SUPONHA QUE A VARIAVEL SALARIO TENHA O VALOR 1200)
QUER DIZER Igual a Diferente de Maior que Menor que Maior ou igual a Menor ou igual a
EXEMPLO Salario == 100 Salario != 100 Salario > 100 Salario < 100 Salario >= 100 Salario <= 100
Agora que voc j sabe o que uma expresso condicional vamos estudar o que uma ESTRUTURA DE DECISO.
Uma ESTRUTURA DE DECISO nada mais que do que um bloco de cdigo que utiliza as expresses condicionais para tomar decises que orientam qual cdigo deve ser executado.
Lio 17 Usando o if
A primeira estrutura de deciso que iremos estudar o IF, veja a sintaxe a seguir:
if ( expressocondicional )
Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 108
Se o resultado da expresso condicional for VERDADEIRO ento o bloco-de-codigo1 ser executado, se a expresso for FALSO, ento o bloco-de-codigo2 ser executado.
Se o bloco-de-codigo1 e bloco-de-codigo2 for apenas uma linha de cdigo no necessrio usar os colchetes, como nos exemplos abaixo.
Existe uma varivel chamada Salario que est definida e contm o valor 1200. Como toda condio retorna apenas verdadeiro ou falso, verificado se o Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 109
valor maior que 1000, e caso seja verdadeiro ser somado 10% ao Salario. Se Salario for menor que 1000 nada ser executado.
Aqui verificado se o valor menor que 500 e dependendo da condio somado 50 ou 100, pois h o Else. Ento se a varivel for menor que 500 adicionamos nela o valor 50, seno adicionamos 100.
if (Salario < 500) Salario += 50; else if ((Salario >= 500) && (Salario < 2000)) Salario += 100; else Salario += 250;
J no exemplo acima existem 3 condies, onde o primeiro IF soma 50, o segundo 100 e o ELSE 250. O Else sempre executado quando nenhuma expresso verdadeira.
possvel avaliar diversos else ifs com uma determinada expresso. Como no exemplo abaixo:
if (Salario < 500) Salario += 50; else if ((Salario >= 500) && (Salario < 600)) Salario += 100; else if ((Salario >= 500) && (Salario < 700)) Salario += 110; else if ((Salario >= 500) && (Salario < 800)) Salario += 120; else Salario += 250;
Exemplo:
Nesta linha testamos se o Salario maior ou igual a 500 e o Salario menor que 600.
Ento se o Salario for 553 a expresso acima VERDADEIRA, caso contrario FALSA.
O && conhecido como um OPERADOR LGICO, temos quatro deles como mostra a tabela a seguir:
|| (Or)
! (Not)
Se a expresso condicional for falsa o resultado verdadeiro. Se a expresso condicional for verdadeira o resultado falso.
Algumas expresses complexas podem exigir mais de um operador lgico. A seqncia de execuo neste tipo de expresso primeiro, os operadores matemticos, depois os operadores de comparao e s ento os operadores lgicos.
Vamos a alguns exemplos de como utilizar os operadores lgicos: Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 112
Vamos fazer um programinha que valida o usurio, verificando se ele mesmo atravs do seu nome e senha.
1 Entre no Visual Studio e crie uma aplicao chamada EstruturaDeDecisao do tipo Windows Application.
2 - Label Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 113
2 TextBox 1 Button
Controle Label1 Label2 Textbox1 Textbox2 Button1 Text Text Text Text Text
Valor
Validar
5 De um clique duplo no button1 e digite o seguinte cdigo: Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 114
if ((Nome == "Moroni") && (Senha == "123")) MessageBox.Show("Bem Vindo Moroni"); else { MessageBox.Show("Usuario Invalido"); Close();
Voc pode substituir o valor do nome para o seu nome e sua senha.
Perceba que tivemos que abrir e fechar colchetes ( {} ) depois do else, sempre temos que fazer isso quando tivermos mais que uma linha de cdigo, isso se aplica ao else, e tambm depois do if, se tivssemos mais de uma linha de cdigo no bloco de cdigo acima teramos que fazer o mesmo.
6 Execute o programa.
8 Clique em validar.
MessageBox.Show("Bem Vindo Moroni"); Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 116
9 Clique em Ok.
Em resumo:
Declaramos duas variveis e demos as elas os valores dos controles de texto. Depois testamos se o valor do nome era Moroni e a Senha 123, voc pode substituir o valor para o seu nome e sua senha. Se o resultado da expresso for verdadeira ento ele da a mensagem de bem vindo, caso contrario ele da a mensagem de usurio invalido e sai do programa.
Essa estrutura de deciso seleciona o cdigo a ser executado baseado no valor de uma expresso.
A sintaxe a seguinte:
O funcionamento ocorre da seguinte maneira: a expresso obtida no switch e para cada Case existe uma condio a ser validada. Caso o Case seja verdadeiro, ento a linha ou o bloco de cdigo executado. Se nenhum dos Cases for vlido, ento default executado. O default opcional e voc pode ter quantos Cases for necessrio. A cada Case preciso declarar o break, seno o programa continua avaliando todos os Cases.
Veja o exemplo:
int diaDaSemana = 3;
switch (diaDaSemana) { case 1: MessageBox.Show("Domingo"); break; case 2: MessageBox.Show("Segunda-Feira"); break; case 3: MessageBox.Show("Tera-Feira"); break; case 4: MessageBox.Show("Quarta-Feira"); break; case 5: MessageBox.Show("Quinta-Feira");
O primeiro Case verifica se o valor da varivel ou expresso de teste 1. Se for o cdigo que escreve na tela o texto Domingo executado e a estrutura finalizada no verificando os outros Cases. Caso contrario ele vai pro prximo case e segue como o primeiro at o fim da estrutura. Se nenhum dos cases se enquadrar no valor da expresso de teste nenhum cdigo ser executado, para isso que serve o default. No prximo exemplo vamos apenas programar o uso do default:
int diaDaSemana = 3;
switch (diaDaSemana) { case 1: MessageBox.Show("Domingo"); break; Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 120
case 2: MessageBox.Show("Segunda-Feira"); break; case 3: MessageBox.Show("Tera-Feira"); break; case 4: MessageBox.Show("Quarta-Feira"); break; case 5: MessageBox.Show("Quinta-Feira"); break; case 6: MessageBox.Show("Sexta-Feira"); break; case 7: MessageBox.Show("Sabado"); break; default: MessageBox.Show("Dia Invlido"); break;
Aqui se o resultado da expresso de teste no for verdadeiro em nenhum Case, ento ser executado o default, escrevendo na tela que o valor informado invalido, o que no o caso para o nosso exemplo, j que o valor da expresso se enquadra no Case 3 escrevendo Tera-Feira.
Para entender ainda melhor vamos fazer um exemplo no Visual Studio. Esse exemplo lista todos os meses do ano e quando selecionado um ms ele exibe uma mensagem na tela com o numero de dias que o ms selecionado possui.
2 Arraste um listBox para o Form1. Na propriedade Items na janela Properties digite todos os meses do ano como abaixo:
3 De um clique duplo sobre o listBox1 e digite o seguinte cdigo: Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 123
switch (Convert.ToString(listBox1.SelectedItem)) { case "Fevereiro" : MessageBox.Show ("Este mes tem 28 dias"); break; case "Abril": case "Junho": case "Setembro": case "Novembro": MessageBox.Show ("Este mes tem 30 dias"); break; default: MessageBox.Show ("Este mes tem 31 dias"); break; }
5 Clique sobre um ms, por exemplo, Fevereiro, note a janela que exibe o numero de dias que tem esse ms.
Nosso exemplo simples, criamos uma estrutura switch e demos a ela como expresso de teste o valor do item selecionado na listBox1. Usamos o mtodo Convert para converter para string o valor obtido da listBox1.
O primeiro Case verifica se o item selecionado ou valor da expresso Fevereiro. Se sim ento mostra a caixa de dialogo com a mensagem dizendo que o ms possui 28 dias, seno vai para o prximo Case que verifica se o item selecionado Abril, e assim sucessivamente at Novembro. Note que s implementamos cdigo em Novembro, agrupamos assim quando os cases forem executar o mesmo bloco de cdigo. Se o valor da expresso no se enquadrar em nenhum item da lista ento ele vai para o default que executa o cdigo com a mensagem de que o ms possui 31 dias.
6 Vamos fazer uma mudana no nosso switch agora, siga o exemplo abaixo:
switch (listBox1.SelectedIndex + 1) { case 2 : MessageBox.Show ("Este mes tem 28 dias"); break; case 4: Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 126
case 6: case 9: case 11: MessageBox.Show ("Este mes tem 30 dias"); break; default: MessageBox.Show ("Este mes tem 31 dias"); break; }
Neste exemplo, ao invs de pegarmos o texto selecionado no listBox agora estamos pegando o ndice.
O ndice um numero que atribudo a cada valor na lista comeando por zero, ento Janeiro tem ndice 0, Fevereiro 1 e assim por diante.
Como sabemos que Janeiro o primeiro ms do ano e fevereiro o segundo e assim por diante adicionamos 1 ao valor do ndice. Isso apenas para no confundirmos.
O switch deixa o cdigo mais estruturado em relao ao uso de vrios else if seguidos;
Voc s pode usar o switch com tipos de dados primitivos, como: (int, long, float, double, decimal, string, char, bool). Para usar outros tipos de dados use o if;
A expresso do case precisa ser uma expresso nica, em outras palavras, no permitido escrever duas expresses em um mesmo case.
Voc precisa repetir a sintaxe do case para cada valor individual que voc quer avaliar, mesmo que ele execute o mesmo bloco de cdigo, veja o ultimo exemplo.
Voc deve usar o break aps cada bloco de cdigo seno ele vai continuar avaliando os outros cases.
As estruturas de repetio tambm conhecidas como estruturas de looping permitem que voc executa uma linha ou bloco de cdigo repetidamente at que uma condio seja verdadeira.
O uso de loopings nos programas uma prtica comum, pois em muitos casos preciso percorrer uma determinada coleo de dados, um conjunto de registros, valores de matrizes, etc.
O looping While executado sempre associado a uma condio, ou seja, a cada passagem pelo looping a condio avaliada. Veja a sintaxe a seguir:
1 - Crie um novo projeto no Visual Studio, novamente do tipo Windows Application, chame o projeto de while.
1 Button 1 ListBox
Na primeira linha declaramos uma varivel chamada contador do tipo integer e atribuimos a essa variavel o valor 0.
A segunda linha comea o While com a condio. Essa linhar quer dizer enquanto contador for menor que 20, ou seja ele vai executar o loop ou o cdigo que esta entre os colchetes at que o conteudo da varivel contador seja igual ou maior que 20.
A linha quatro soma 1 ao conteudo da varivel contador, a linha a seguir tem o mesmo significado:
contador = contador + 1
Entretanto da forma que fizemos no nosso exemplo mais elegante porque no precisamos repetir o nome da varivel, se apenas fizssemos assim:
contador = 1
Ele atribuiria 1 ao contedo da varivel e o nosso looping se tornaria um loop infinito ou seja nunca ia parar de rodar porque nunca entraria na condio que o faz parar. Cuidado com esse tipo de loop, seus loops nunca devem ser infinitos.
A expresso condicional deve retornar sempre um valor Boolean ou seja, verdadeiro o falso.
Se na primeira passagem o resultado da empresso condicional for falso, o cdigo do While no ser executado.
Se voc for usar mais de uma linha de cdigo dentro do while precisa coloc-lo entre colchetes, seno no.
Lio 20 Usando o do
O Do semelhante ao while, ou seja, executado sempre associado a uma condio, novamente a cada passagem pelo looping a condio avaliada. S que no Do a condio colocada no final, fazendo com que mesmo que o resultado seja falso da expresso booleana o cdigo seja executado pelo menos uma vez. Caso precise abandonar o looping, use o break, que opcional. Veja a sintaxe (no esquea do ponto-e-virgula no final):
Vamos fazer uma modificao no exercicio do item anterior para compreender como funciona o break.
2 - V para o cdigo do button1, ele deve ser o seguinte: Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 134
int contador = 0; while (contador < 20) { contador++; if (contador == 10) { break; } listBox1.Items.Add(contador); }
Perceba que as modificaes foram minimas, apenas inserimos um If que verifica se o conteudo da variavel contador 10, se for ele executa o break que finaliza imediatamente o loop.
4 - Execute a aplicao:
5 - Clique em Loop.
Perceba que ele nem chega a escrever o nmero 10 por que a linha de cdigo que responsvel por isso esta depois do If que finalizou o loop.
7 Execute a aplicao e clique em Loop. Perceba que no aparece nada, porque o resultado da expresso condicional comea como false, j que o valor no menor que 20, e sim igual a 20.
int contador = 20; do { contador++; listBox1.Items.Add(contador); Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 136
Se a expresso estivesse encima nada apareceria, mas agora aparece o 21, isso porque ele executou uma vez o loop antes de avaliar a expresso, algumas vezes esse tipo de loop pode ser necessrio. Fique atento.
O For usado quando sabemos o nmero de vezes que iremos executar o Loop. O For precisa de um contador que normalmente uma varivel que controla o nmero de vezes que o loop ser executado..
Se durante o processamento voc quiser abandonar o looping, ter que usar o break. A sintaxe do For a seguinte:
statement
1 - Crie uma nova aplicao do tipo Windows Application com nome For.
4 - De um clique duplo sobre o boto e no digite o seguinte cdigo para o evento do boto:
5 - Execute a aplicao.
Quando inicializamos o for, primeiro iniciamos uam varivel do tipo integer e damos o valor 1 para ela, demos o nome de i para essa variavel. Depois colocamos uma expresso booleana que ser responsvel por avaliar o numero de vezes que o for ser executado, nossa expresso diz que o for deve ser executado enquanto o contedo de da varial i for menor ou igual a 4. Para finalizar a inicializao do For dizemos que a cada passada o contedo da varivel i deve ser acrescentado em 1. Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 141
Perceba que o i+= 5 fez com que o nmero adicionado a variavel a cada passada do loop 5 ao invs de 1.
O Foreach usado em casos onde voc precisa percorrer uma coleo de dados. No Foreach voc no precisa verificar o limite do looping, pois isto j est implcito na prpria coleo, ou seja, voc se preocupa apenas em manipular o objeto atual. Caso tenha dvida no uso, pense da seguinte forma: Para cada elemento contido na coleo, faa algo. Vamos estud-lo em detalhe quanto falarmos sobre Arrays e Colees.
O ambiente de desenvolvimento do Visual Studio .Net contm muitas ferramentas que nos ajudam a resolver os erros em nossos programas.
Trs tipos de erros podem ser encontrados em seus programas, so eles: erros de sintaxe, erros de Runtime e erros lgicos, vamos entender cada um deles.
Acontece quando voc digita de forma errada uma palavra reservada ou comando do C#. Voc no consegue executar seu programa quando tem esse tipo de erro no seu cdigo.
Erros de Runtime:
Acontecem quando o programa para de executar derrepente durante sua execuo, chamamos essa parada de exceo. Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 144
Erros de runtime acontecem quando alguma coisa interfere na correta execuo do seu cdigo, por exemplo, quando seu cdigo precisa ler um disquete que no esta no drive, ao no encontrar o disquete ele gera uma exceo e para bruscamente a execuo, esse tipo de erro pode e deve ser tratado.
Erros lgicos:
Esse o tipo de erro mais dificil de ser tratado. um erro humano. O cdigo funciona perfeitamente, mas o resultado errado. Exemplo, uma funo que deve retornar um valor, s que o valor retornado esta errado, o erro neste caso se encontra na lgica da funo que esta processando o clculo. A grosso modo como se o seu programa precise fazer um calculo de 2 + 2 em que o resultado certo 4 mas ele retorna 3. Quando uma conta simples fcil de identificar mas e se o calculo for complexo?
1 - Entre no Visual Studio.NET e crie uma nova aplicao, novamente do tipo Windows Application chamada Debug.
1 Button 2 TexBox
At agora sempre usamos a janela Properties para setar as propriedades dos controles, desta vez vamos fazer de uma outra forma.
De um clique duplo sobre o Form1 em qualquer lugar, desde que no seja encima de nenhum controle. Vai aparecer o cursor dentro do seguinte cdigo:
Tudo que estiver dentro deste procedimento, chamado Form1_Load ser executado assim que o programa for executado.
button1.Text = "Testar";
4 - Execute a aplicao.
Note que a propriedade text do button1 foi modificada como se a tivssemos feito na janela properties.
Para usar o Debug no necessrio setar as propriedades assim, pode ser pela janela Properties apenas entenda que as propriedades podem ser modificadas em tempo de execuo, voc pode inclusive setar propriedades em um evento de clique de boto.
int idade; Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 148
idade = int.Parse(textBox1.Text); if (idade > 13 && idade < 20) { textox2.Text = "Voc adolescente"; } else { textBox2.Text = "Voc no adolescente"; }
Nosso programa vai ler o conteudo no TextBox1, se o valor for um numero entre 13 e 20 ele vai escrever no TextBox2 a mensagem que voc um adolescente, seno vai escrever que voc no um adolescente.
A caixa de dlogo esta dizendo que sua aplicao tem erros, se voc clicar em sim ele tenta executar a aplicao mesmo com os erros, clicando em no ele para a tentativa de execuo do programa.
7 Clique em No.
Agora no painel de cdigo perceba que depois da linha de inicio do If o cdigo que seta a propriedade Text do TextBox2 tem o nome do controle sublinhado. Esse um erro de sintaxe, o nome do controle esta digitado errado, esta faltando um B.
8 - De um clique duplo sobre a mensagem The name textox2 does not exist in the context
Ele vai direto para a linha de cdigo com problema. Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 150
Ele escreve a mensagem Voc no adolescente, porque ele entra no else do IF, j que 21 no esta entre 13 e 20.
Agora como o nmero entra na condio a mensagem muda para Voc adolescente.
13 - Feche a aplicao.
idade = int.Parse(textBox1.Text);
16 - Clique sobre esta linha com o boto direito do mouse e selecione a opo Insert BreakPoint, como na figura abaixo:
O BreakPoint um ponto de parada. Voc pode colocar vrios destes no seu cdigo.
Essa a barra de ferramentas do depurador ou debug, como o nome diz ela permite que depuremos nosso cdigo linha-a-linha, permitindo uma analise detalhada.
Neste momento a varivel idade j tem o contedo do TextBox1. Passe o mouse sobre o texto idade em qualquer lugar do cdigo para ver o contedo da varivel.
A seta amarela representa a prxima linha de cdigo que ser executada. Neste momento a linha amarela ainda no foi executada.
20 - Clique em Locals. A janela Locals tambm mostra informaes do programa, como o valor da varivel idade.
Note que depois que ele avalia o IF como no entra na condio ele j pula para o Else. O boto Step Out, pula para o prximo BreakPoint ou termina a execuo.
22 - Pare a execuo.
O debug muito til para encontrar erros lgicos, supondo que os adolecentes so pessoas de faixa etria que vai de 13 a 19 anos procure localizar o erro lgico no programa que acabamos de criar.
idade = int.Parse(textBox1.Text);
2 - Execute o programa.
O programa para no BreakPoint. E o Visual Studio entra no que chamamos de Break Mode.
5 - Clique com o boto direito sobre o nome da varivel idade, e selecione Add Watch, como na figura:
adicionado uma linha com o nome da varivel e seu valor na janela Watch.
Agora a cada passo do programa voc vai poder acompanhar o valor de cada um destes itens.
8 - Clique no boto Step Into na barra de ferramentas Debug. Ao invs de clicar no boto voc pode apertar F11 no teclado.
O valor da varivel idade mudado para 25 e a expresso idade < 20 avaliada como False. Os valores so modificados na janela Watch em vermelho porque acabaram de ser atualizados.
Para remover um item da janela Watch, clique sobre o mesmo, exemplo, idade < 20 e pressione a tecla Delete no teclado.
Para ver o contedo das varveis e propriedades durante a execuo do programa voc precisa usar a janela Watch, porque a janela Locals no mantem os valores durante a execuo de todo o programa.
Para esse item suponho que voc tenha finalizado o anterior e o que o exemplo esta com o BreakPoint marcado.
1 - Execute o programa.
Agora voc modificou o contedo da varivel idade com a janela Command, o valor da vriavel idade exibido na janela Locals em vermelho, imediatamente aps a modificao, mostrando que acabou de ser modificada.
6 - Clique duas vezes sobre o boto Step Into na barra de ferrametas Debug.
8 - Clique no boto Step Into da barra de ferramentas Debug mais duas vezes.
O nmero 25 permanece na TextBox1, isso porque mudamos apenas o valor da varivel e no o valor do TextBox1, j a TextBox2 mostra a mensagem nova que colocamos atravs da janela Command.
Em companhia com as janelas Locals e Watch a janela Command pode ser muito til para encontrar e resolver dificeis erros de lgica em seus programas.
Lio 27 try..catch
At agora voc aprendeu como utilizar o Visual Studio .NET para resolver erros de sintaxe e lgicos. partir deste item voc aprender a tratar erros de runtime atravs do try...catch, que conhecido como uma estrutura de tratamento de erros ou estrutura de tratamento de excees. Voc pode us-lo para reconhecer qual o erro de runtime esta ocorrendo no seu programa e atravs disso emitir uma Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 166
mensagem de erro adequada e ajustar seu programa com as condies necessrias para que ele continue executando.
Um exemplo bem comum, mas que permite que ilustremos bem como os erros de runtime ocorrem e como trat-los o exemplo da leitura do drive de disquete.
Para esse exemplo ser necessrio um disquete com um arquivo nele. Vamos colocar um arquivo de imagem, assim voc j aprende como abrir um arquivo de imagem no seu programa.
1 - Pegue um disquete - o ideal que no tenha nenhum arquivo nele ou pelo menos o espao necessrio para a imagem - coloque o no drive A.
2 - Copie para o disquete uma imagem, no nosso exerccio estou colocando a imagem inverno.jpg, porque ela j vem com o windows XP e fica armazenada na pasta amostra de imagens dentro de Meus Documentos > Minhas Imagens > Amostra de imagens. Fique a vontade para colocar outra imagem.
3 - Agora no Visual Studio crie um novo programa chamado TryCatch do tipo Windows Application.
1 Button 1 PictureBox
Eu redimencionei tanto o tamanho do Form1 como o tamanho do PictureBox1, voc pode fazer o mesmo utilizando as guias.
pictureBox1.Image = System.Drawing.Image.FromFile(@"a:\inverno.jpg");
Quando for passar um caminho como string utilize o @ antes como fizemos no cdigo acima.
9 - Clique no boto Testar Drive, a imagem deve abrir no Form como a seguir:
O programa no consegue encontrar o arquivo, acontece ento um erro de runtime, que para bruscamente a execuo do programa.
try Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 170
Voc no precisa digitar denovo a linha que executa a leitura da imagem do disquete. Apenas acrescente o try..catch e o cdigo responsavel por emitir a mensagem de erro.
15 - Execute a aplicao.
Perceba que agora ele mostra a caixa de dialgo com a mensagem que especificamos. Isso muito mais elegante do que o erro gerando anteriormente.
19 - Feche a aplicao.
try { Cdigo executado se nenhum erro acontecer } catch { Cdigo executado se houver erro } Finally { Opcional, sempre executado }
O cdigo fica sempre aps a palavra reservada try, se algum erro aconteer no processamento deste cdigo o programa vai imediatamente para o bloco catch que responsavel pelo tratamento do erro. O finally opcional, ele sempre executado, com erro ou no. No nosso exemplo colocamos o cdigo que l a imagem dentro do try, e no catch o cdigo que abre a caixa de dialgo pedindo para inserir o disquete no drive A.
Se nenhum erro ocorrer executado apenas o cdigo dentro do try, seno ele vai para o catch. Pedindo para inserir o disquete no drive A. Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 173
try { pictureBox1.Image = System.Drawing.Image.FromFile(@"a:\inverno.jpg"); } catch { MessageBox.Show("Insira o disquete no drive A"); } finally { MessageBox.Show("Cdigo executado no finally"); }
Voc no precisa mudar o cdigo anterior, apenas acrescentar o finally, como exemplo de uso do finally apenas vamos exibir mais uma caixa de dilogo.
21 - Execute a aplicao.
22 - Teste com e sem disque do drive. Vai ver que a mensagem do Finally aparee nas duas alternativas, ou seja, com e sem erro.
A tabela a seguir mostra o que ocasiona a maior parte dos erros de runtime:
Podemos aninhar - colocar blocos de try...catch um dentro de outro - para criar estruturas de tratamento mais avanadas, como o exemplo:
try { pictureBox1.Image = System.Drawing.Image.FromFile(@"a:\inverno.jpg"); } catch { MessageBox.Show("Insira o disquete no drive A"); try Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 176
A primeira mensagem de erro pede para o usuario inserir o disque e clicar em OK, se ele o fizer o programa tenta ler o arquivo, se no for possivel emite a mensagem de Falha e desabilita o Button1.
Vamos fazer esse exemplo para voc ver a diferena do que tinhamos feito at aqui.
1 No programa que criamos na lio anterior, modifique o cdigo do evento do Button1 para o seguinte.
2 - Execute aplicao e sem o disco no drive clique no boto Testar Drive. Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 178
6 - Clique em OK.
button1.Enabled = false; Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 179
Conhecemos por programao defensiva a iniciativa do programador de escrever seu cdigo protegendo-o de erros de runtime. Exemplo:
if (System.IO.File.Exists(@"a:\inverno.jpg")) { pictureBox1.Image = System.Drawing.Image.FromFile(@"a:\inverno.jpg"); } else { MessageBox.Show("No possivel abrir o arquivo no drive A"); }
O cdigo acima usa a o mtodo File.Exists para verificar se o arquivo existe antes de tentar abri-lo.
O IF no uma estrutura de tratamento de erros, porque no previne os erros de runtime, no entanto ele permite tcnicas de validao.
A pergunta aqui a seguinte: Quando utilizo programao defensiva preciso usar os blocos de tratamento de erros?
A resposta depende de com que freqncia voc acha que o problema vai ocorrer no programa que voc esta criando. Se o erro de runtime for ocorrer menos de 25% das vezes que o cdigo for executado o tratamento de erros a forma mais eficiente de tratar o erro. Os try...catch essencial se voc tem mais do que uma Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 180
condio para testar tambm, e se voc quer privar os usurios de vrias questes a serem respondidas para prevenir os erros.
No entanto se a estimativa do erro ocorrer for mais de 25% da vezes, a programao defensiva bem eficaz para diminuir a quantidade de excees.
Mas o ideal o uso das duas, tanto da programao defensiva como dos blocos Try...Catch.
Para finalizar suponha que o usurio esta sem o disco e tente abrir o arquivo, no sendo possivem a exceo acontee e consequentemente o erro de runtime, um bloco try...catch trata o erro, mas novamente o usuario clica no boto e o erro acontee denovo, tratado, e assim sucessivamente.
Para evitar esse problema podemos criar uma variavel que armazena o numero de vezes que o Catch foi executado, chegando a um nmero estipulado podemos por exemplo desabilitar o boto, como no exemplo abaixo:
int retorno = 0; try { pictureBox1.Image = System.Drawing.Image.FromFile(@"a:\inverno.jpg"); } Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 181
catch { retorno += 1; if (retorno <= 2) { MessageBox.Show("Insira o disquete no drive A"); } else { MessageBox.Show("Recurso no disponivel"); button1.Enabled = false; } }
Imagine que voc tem que armazenar as faltas cometidas por cada jogador de um time em uma partida de futebol. Voc precisaria armazenar o nome e o nmero de faltas que cada jogador cometeu. Como faria para armazenar isso em variveis? Provavelmente voc teria que declarar duas variveis para cada jogador, uma para armazenar o nome e outra o nmero de faltas, chagando facilmente a 22 variveis, isso, se no houver nenhuma substituio.
Arrays so usados para gerenciar grande quantidade de informao. Como variveis, voc precisa declarar seus arrays antes de us-los. Os arrays tambm respeitam as mesmas regras de escopo que as variveis, ou seja se declaradas dentro de procedimentos, ficam disponiveis apenas para o procedimento em questo.
Vamos fazer um exemplo, nele vamos criar o programa que armazenar os dados nos nomes dos jogadores e as faltas cometidas por eles.
1 - Entre no Visual Studio e crie um novo projeto do tipo Windows Application chamado Arrays.
10 - Na janela Solution Explorer clique no boto View Code para ir para o Painel de cdigo.
Nesta linha declaramos um Array de tamanho fixo. O array que criamos como uma tabela com 11 linhas, o suficiente para armazenar o nome do time inteiro, 11 jogadores.
12 - Na janela Solution Explorer clique em View Designer para voltar para o Form1 no modo Design, voc pode tambm clicar na aba Form1.vb[Design] ao lado da aba Start Page, essa altura do curso voc ja deve estar familiarizado com o Visual Studio.
jogadores[0] = textBox1.Text;
Isso insere Marcos na primeira linha do Array, se colocassemos 6 ao invs de 0, por exemplo, seria na linha 7. O primeiro registro no array sempre o 0, isso porque os ndices sempre comeam com 0.
listBox1.Items.Add(jogadores[0]);
Isso insere na ListBox1 o contedo da primeira linha do array Jogadores, se colocassemos 6, exibiria o contedo da linha 7, lembre-se que de o primeiro registro do array tem sempre o ndice 0 e assim sucessivamente.
No se assuste com o cdigo para inserir no ListBox1, se fosse em uma TextBox ou Label voc poderia usar a seguinte linha de cdigo:
textBox1.Text = jogadores[0];
S que para inserir um item no ListBox precisamos usar seu mtodo Add.
15 Execute a aplicao.
Agora que voc j compreende como inserir e ler dados do array vamos avanar no exemplo.
18 Pare a execuo.
int contador = 0;
Isto cria uma varivel que estar disponvel para todos os procedimentos dentro da classe, ou seja, seu escopo a classe. Tambm j atribumos o valor 0 nela. Essa varivel ser usada para controlar o ndice ou local do array onde vamos inserir cada jogador.
if (contador <= 10 && textBox1.Text != "") { jogadores[contador] = textBox1.Text; contador += 1; textBox1.Text = null; } else { button1.Enabled = false; }
Vai ficar assim: Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 189
No podemos adicionar jogadores no array se ele estiver cheio e se o contedo do textBox no tiver nada. Para isso usamos o if.
Depois adicionamos o contedo do textBox1 no array. A posio informada pela varivel contador.
Adicionamos 1 a varivel contador, seno o array nunca vai para a prxima posio.
No else apenas desabilitamos o Button1 caso o array esteja vazio ou no tenha nada nele digitado, ou seja, caso a expresso lgica do if retorne false.
Aqui usamos o loop tor para passar por cada item do Array e adiciona-lo no ListBox1. Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 191
A propriedade Length retorna o numero de registros do array, que 11, poderamos simplesmente ter feito assim:
Colocamos o -1 depois do Length porque o Lenght retorna 11, lembre-se que o ndice do primeiro elemento do array 0, ento o ultimo 10.
A cada passada pelo For o i assume o valor de uma linha do array at chegar ao final.
23 - Execute a aplicao.
Faa isso sucessivamente at que o boto seja desabilitado, ou seja, que o array seja totalmente preenchido.
Como voc pode ver, trabalhamos facilmente com os nomes dos 11 jogadores em nosso array, podemos modificar os dados do nosso array facilmente, bastando para isso indicar qual linha deve ser alterada e o novo dado, como no exemplo:
jogadores[10] = Robinho;
Um array pode conter mais de um coluna. Vamos entender como isso funciona implementando o cdigo que vai armazenar o nmero de faltas de cada jogador.
Como um Array s pode conter um tipo de dado e nosso Array j do tipo String, no nosso exemplo vamos adicionar o nmero de faltas como string mesmo, mas, a maneira correta seria criar um outro Array do tipo integer para armazenar as faltas. Vamos optar pela primeira opo para voc aprender a trabalhar com duas colunas.
jogadores[contador] = textBox1.Text;
jogadores[contador,0] = textBox1.Text;
Isso apenas indica que vamos adicionar o nome na linha que o loop indicar, na coluna 1, de ndice 0.
int contadorFaltas = 0;
if (contadorFaltas <= 10 && textBox2.Text != "") { jogadores[contadorFaltas, 1] = textBox2.Text; contadorFaltas += 1; textBox2.Text = null; } else { Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 194
button2.Enabled = false; }
Isso semelhante ao cdigo do Button1. S que usamos a varivel contadorFaltas, o textBox2 e o button2.
Note tambm que agora atribuimos os valores segunda coluna, como mostra o cdigo:
jogadores[contadorFaltas, 1] = textBox2.Text;
Agora precisamos mudar o cdigo do button3, que exibe os dados, para listar as faltas tambm.
for (int i = 0; i <= 10; i++) { listBox1.Items.Add(jogadores[i,0] + " - Total de faltas: " + jogadores[i,1]); } O que fizemos foi concatenar os dados da coluna 1 com os da 2, e fazer um loop por cada linha do array de 0 a 10 ou seja pelas 11 linhas.
Faa isso sucessivamente at que o boto seja desabilitado, ou seja, que o array seja totalmente preenchido.
34 Digite uma quantidade de faltas para cada jogador como fez com o nome dos jogadores at o boto ser desabilitado.
Lio 32 Colees
Uma coleo um grupo de objetos relacionados. Todo controle que voc arrasta para o Form um objeto. E cada objeto adicionado ao Form adicionado a uma coleo. Essa coleo conhecida como coleo de controles ou Control Collection.
1 - Entre no Visual Studio e crie um novo projeto do tipo Windows Application chamado Colees.
Sempre que adicionamos controles como o Button por exemplo ao nosso Form, automaticamente os controles so adicionados a coleo de controle do Form, vamos chamar essa coleo de Control Collection daqui pra frente. Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 198
5 - Clique no Button1.
Criamos um loop que passou por cada controle modificando sua propriedade Text.
6 - Voc pode filtrar os controles que quer modificar tambm, vamos fazer isso modificando o Loop do Button1 para o seguinte:
7 - Execute a aplicao.
8 - Clique no Button1.
Agora apenas o Button2 e Button3 foram alterados pelo Loop. J que adicionamos o If para testar se o controle no era o Button1. Mudamos uma propriedade diferente desta vez, movimentando assim os Buttons para a direita.
Voc pode referenciar um controle na coleo individualmente, para isso voc utiliza o indice para localizar um objeto da coleo. Como nos arrays o indice comea sempre em 0. Outro ponto importante que o primeiro controle do indice, ou seja, o indice 0 o ltimo controle adicionado no Form1, o penultimo tem indice 1 e assim sucessivamente. Se voc adicionar um controle novo , ele fica com indice 0 e os outros pulam um pra frente sucessivamente.
Controls[0].Left += 35;
Lembrando que Controls representa todos os controles do Form1, ou seja, a Control Collection.
Controls[0].Left += 35;
10 - Execute a aplicao.
11 - Clique no Button2.
Conforme citado o indice 0 representa o ltimo controle adicionado no Form1, ento nosso cdigo moveu apenas o Button3 - que foi o ltimo controle adicionado - para a esquerda.
A partir deste capitulo vamos nos aprofundar mais no desenvolvimento de aplicaes para Windows. Um programa realmente no desenvolvido com apenas um formulrio (Form). Sempre temos vrios deles nos nossos programas, vamos estudar neste capitulo como trabalhar com varios formulrios. Alem disso, vamos estudar as propriedades mais importantes dos formulrios.
Sempre que voc cria uma Windows Application um formulrio j criado por padro, ele conhecido como formulrio Base.
1 Na janela Solution Explorer, clique com o boto direito no nome do projeto, selecione Add e clique em Windows Form. Como a imagem seguinte.
Vamos fazer um exemplo que ilustra como podemos trabalhar com mltiplos formulrio.
5 Mude o nome do Form2 para frmVermelho e do Form3 para frmVerde. Para isso clique sobre o nome do Form no Solution Explorer e clique em Rename como a imagem seguinte: Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 207
Se a seguinte mensagem aparecer clique em Sim. Isso vai atualizar todas as referencias ao form do projeto para o novo nome.
8 No Form1 de um clique duplo sobre o boto Vermelho e digite o seguinte cdigo dentro do procedimento do evento click:
10 Execute a aplicao.
O formulrio Vermelho aberto, perceba que voc pode clicar novamente no Form1 e depois voltar para o Vermelho e assim por diante.
Perceba agora que voc no consegue voltar para o Form1 sem antes fechar o formulrio Verde, isso porque usamos o mtodo ShowDialog ao invs do mtodo Show, geralmente eu procuro usar sempre o mtodo ShowDialog em minhas aplicaes.
Para esta lio continuaremos usando o exemplo que criamos na lio anterior.
2 V para o painel de cdigo do frmVermelho e dentro da classe frmVermelho digite o seguinte cdigo:
Usamos a palavra public antes do tipo do dado na declarao de variveis sempre que queremos faz-la publica.
5 Volte para o frmVermelho, de um clique duplo sobre o button1 e digite o seguinte cdigo no procedimento:
label1.Text = mensagem;
6 - Execute a aplicao.
O contedo da varivel foi exibida no label1. O mais importante desta lio que voc agora capaz de passar valores entre formulrios. Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 216
Crie
uma
nova
aplicao
do
tipo
Windows
Application
chamada
Posicionando.
3 - Execute a aplicao.
Essa propriedade faz com que o formulrio em questo seja exibido no centro da tela.
Agora voc deve especificar manualmente como os valores que sero usados para posicionar o formulrio na tela.
7 - Execute a aplicao.
O formulrio exibido agora a 100 pixels da lateral esquerda e 50 pixels do topo da tela.
1 - Crie um novo projeto no Visual Studio chamado Eventos do tipo Windows Application.
O clique do boto um exemplo de evento que pode ocorrer nos seus programas. Existem dezenas de eventos que podem ocorrer em seus programas, e sempre que um evento ocorre um bloco de cdigo pode ser processado, esse bloco de cdigo conhecido como Manipulador de Evento. O evento que voc mais usou at aqui foi o do clique do boto, tambm usou o Load do formulrio.
O .NET Framework usa uma nomeao padro para os Manipuladores de Eventos. Essa nomeao combina o nome do objeto com o evento correspondente ligando-os por um underline, exemplo: button1_Click; form1_Load.
Nosso exemplo vai nos mostrar como adicionar manipuladores de eventos em nossos programas usando o painel de cdigo ou Code Pane.
4 Clique sobre cada um dos controles acima e visualize sua lista de eventos.
Para criar o procedimento do evento desejado de um clique duplo sobre o nome do mesmo na janela Properties.
Esse controle permite que o usurio escolha a data ou hora atravs de um calendrio. Muito util para evitar erros de digitao de data ou hora incorretos.
2 - Localize o controle DateTimePicket na ToolBox e adicione-o ao Form1. Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 221
O objeto DateTimePicket por padro exibe a data atual, mas voc pode ajustar esse valor na propriedade Value.
Voc pode escolher a data no calendrio. Isso muito prtico e evita erros.
8 De um clique duplo sobre o boto e no seu procedimento de evento clique digite o seguinte cdigo:
A primeira linha usa a propriedade Text para exibir a data que esta selecionada no controle.
A segunda usa o mtodo DayOfYear para recuperar apenas o dia do ano da data que esta selecionada no controle.
A terceira linha exibe a data e hora atual usando o mtodo Now da estrutura DateTime.
9 - Execute a aplicao.
Para encontrar mais facil a data voc pode digitar o ano no controle antes de abrir o calendrio para que ele j localize o ano.
A primeira mensagem exibe a data do seu aniversrio ou nascimento se voc selecionou o ano em que nasceu.
12 - Clique em OK.
A segunda mensagem exibe o nmero do dia do seu aniversrio ou nascimento em relao ao ano selecionado.
Vamos compreender agora como utilizar os controles RadioButton, CheckBox, ListBox e ComboBox para receber informaes dos usurios. Para isso vamos criar uma simples aplicao que usa os quatro tipos de controles para voc compreender quais as diferenas entre eles, quando e como aplic-los.
14 - Mude a propriedade Text dos Labels 3 a 8 para vazio. Deve ficar como a seguinte imagem:
Os 3 RadioButton devem ficar dentro do GroupBox1, assim como os 3 CheckBox devem ficar dentro do GroupBox2, o GroupBox agrupa os controles.
15 - Clique na ListBox1 e na janela Properties, localize a propriedade Items. Clique no boto com as reticncias nesta propriedade, deve abrir a seguite caixa:
17 - Clique em OK.
18 - Faa o mesmo para o ComboBox1, adicione os seguintes items: Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 230
20 - Execute a aplicao.
A primeira funcionade que iremos implementar agora a dos RadioButton. Eles so usados sempre que o usurio precisa fazer uma escolha nica, j que no permite que mais de um item seja marcado. Podemos tambm colocar uma escolha que j aparece marcada como padro, para isso voc deve mudar a propriedade Checked do RadioButton em questo para True.
24 - Pare novamente a execuo do programa. Vamos agora programar o cdigo para os RadioButtons.
25 - No modo Design, de um clique duplo sobre o RadioButton1 e digite o seguinte cdigo no procedimento de evento criado:
label3.Text = "PC";
26 - Faa o mesmo para o RadioButton2 e RadioButton3, digitando as seguintes linhas de cdigo respectivamente:
label3.Text = "MAC";
label3.Text = "Notebook";
O evento padro para o RadioButton o CheckedChanged, que ocorre sempre que h uma mudana na propriedade Checked. Quando voc clica nele o Checked fica como True, ento o evento disparado e muda a propriedade Text do Label3. Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 233
27 - Execute a aplicao e clique sobre as escolhas do RadioButtons para verificar a funcionalidade que acabamos de colocar.
Vamos agora programar o cdigo para os CheckBoxes. Eles so semelhantes ao RadioButton, no entando permitem mais de uma escolha. Novamente voc pode mudar a propriedade Checked de alguns deles para j iniciarem marcados. So usados sempre para perguntas que requerem nenhum ou vrias respostas como no nosso exemplo. O usurio pode no querer nenhum item para o escritrio, pode querer um, dois ou todos os items.
if (checkBox1.Checked == true) label6.Text = "Fax"; else Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 234
label6.Text = "";
32 - Execute sua aplicao. Marque as opes FAX e Copiadora, por exemplo, como disse podemos marcar mais de um item.
label4.Text = listBox1.SelectedItem.ToString();
35 - Vamos j programar o cdigo para a ComboBox tambm, de um clique duplo sobre a mesma no modo Design para abrir o procedimento de evento padro e digite o seguinte cdigo:
label5.Text = comboBox1.SelectedItem.ToString();
Agora voc j capaz de pegar informaes dos usurios de vrias maneiras. Procure utilizar sempre os controles aprendidos neste capitulo, eles impedem muitos erros nos programas por impedirem entradas de dados invlidas.
Tudo o que aprendemos at aqui relacionado interface com o usurio ou Front End, esse acessa os dados nos bancos de dados. Um banco de dados uma coleo organizada de informaes armazenadas. Voc pode criar poderosos banco de dados usando ferramentas da prpria Microsoft como SQL Server e Access e outros de terceiros como Paradox, Oracle, etc, ou seja, voc no usa o Visual Basic.NET para criar bancos de dados, mas para exibir, analisar, e manipular as suas informaes.
A imagem acima representa uma tabela em um banco de dados. Esta tabela armazena as informaes dos clientes. Cada linha representa um registro. Cada registro na nossa tabela clientes representa um cliente especifico. Cada coluna representa um campo, sendo cada campo uma informao do cliente, como nome e telefone. Podemos ter mais informaes como endereo, cep, etc. Um banco de dados pode e geralmente contem varias tabelas. Outras tabelas no nosso banco de dados de clientes poderiam ser produtos, vendedores, etc.
Para criar o banco de dados que vamos utilizar nos exemplos deste capitulo vamos usar o Access. O Access instalado junto com o Microsoft Office, se sua verso for a 2003, ele deve estar em Iniciar > Programas > Microsoft Office > Microsoft Office Access 2003. Voc pode usar qualquer verso do Access para os exemplos deste captulo.
1 - Entre no Access.
3 - Crie uma pasta chamada ADONET no local que voc esta criando seus exemplos, navegue at essa pasta e crie o banco com o nome dados.mdb.
5 - Digite em Nome do campo e Tipo de dados os itens como na figura abaixo. Note que o campo id contm uma chave, para adiciona-l com o campo id selecionado clique em Chave Primaria na barra de ferramentas.
7 - Clique em Sim.
8 - Em Nome da tabela digite Clientes e clique em OK. Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 243
9 - De um clique duplo sobre ela e digite o nome e telefone de 10 pessoas, como a figura:
Note que no necessrio digitar o Id porque ele adicionado automaticamente, isso porque selecionamos numerao automatica quando criamos o campo. O id o campo que identifica individualmente cada registro no banco de dados. Por isso marcamos ele com a chave primaria, podem ter dois clientes com o mesmo nome, mas no com o mesmo id em nossa tabela.
10 - Feche o Access.
Lio 40 Usando o Visual Studio 2005 para manipular dados de um banco de dados.
Escolhemos que nossa origem de dados ser um banco de dados, agora criaremos uma nova conexo com o banco de dados.
5 Na janela Choose Data Source, selecione Microsoft Access Database File, j que criamos nosso banco de dados no Access.
7 Aparece a janela Add Connection. Nela selecionaremos o nosso banco de dados clicando em Browse. Se configuramos uma senha no nosso banco de dados especificamos as mesmas nesta janela tambm.
8 Clique em Browse e selecione o arquivo de banco de dados dados.mdb que criamos, conforme a imagem seguinte.
Voltando a janela Data Source Configuration Wizard podemos ver a string de conexo criada, basta clicar em + Connection string.
Se voc clicar em sim o Visual Studio criar automaticamente uma copia do banco de dados para dentro do projeto e corrigira a string de conexo para o uso do mesmo.
11 Clique em Sim.
12 - A tela acima permite que salvemos a string de conexo em um arquivo de configurao XML, certifique-se que Yes, save the connection as estaja marcado e clique em Next.
13 - A tela seguinte permite que escolhamos as tabelas e consultas que desejamos usar em nosso programa, marque todas as opes em clique em Finish.
Nesta janela configuramos como os controles de tela devem ser criados baseados nos campos das tabelas do banco de dados.
16 Arraste Clientes para o formulrio, ele deve ficar como a seguinte figura:
Perceba que ele j cria automaticamente os controles necessrios para o acesso e atualizao dos dados, assim como um controle DataGridView para manipular os mesmos.
17 Execute a aplicao.
20 Na janela Data Sources, clique na seta para baixo de Clientes e selecione Detais.
Novamente so criados todos os controles necessrios para a manipulao dos dados, s que desta vez no usado o DataGridView.
22 Execute a aplicao.
Novamente voc pode navegar, incluir, excluir e alterar os registro da tabela. 23 Pare a execuo do programa.
Voc tambm pode configurar individualmente como ser exibido cada campo da tabela atravs da janela Data Sources. Basta clicar na seta para baixo do campo conforme a prxima imagem:
Mdulo 11 Imprimindo
3 Button 1 TextBox
using System.Drawing.Printing;
Isso permite que usemos a classe PrintDocument, ela fica localizada dentro do namespace System.Drawing.Printing. A linha acima permite que usemos o namespace em questo dentro cdigo do Form1.
PageSettings configuracaoDepagina = new PageSettings(); string stringParaImprimir; Font fontParaImprimir = new Font("Arial", 10);
Como pode perceber no cdigo acima criamos 3 variveis que vo armazenar informaes importantes que ficaro disponiveis para todos os procedimentos da classe Form1.
11 - De um clique duplo sobre o Button1 (Imprimir) no modo design e digite o seguinte cdigo no procedimento do boto:
O Visual Studio cria para o PrintDocument1 um procedimento de evento que ser executado sempre que for solicitada a impresso de uma pgina.
int numeroLinhas; int numeroCaracteres = 0; string stringParaPagina; StringFormat formataString = new StringFormat();
e.Graphics.DrawString(stringParaPagina, fontParaImprimir, Brushes.Black, areaPagina, formataString); Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 264
if (numeroCaracteres < stringParaImprimir.Length) { stringParaImprimir = stringParaImprimir.Substring(numeroCaracteres); e.HasMorePages = true; } else { e.HasMorePages = false; stringParaImprimir = textBox1.Text; }
Esse procedimento de eventos define a rea da pgina que vai ser impressa, se for preciso dividir o texto em linhas e pginas esse procedimento tambm se responsabilizar por isso.
A rea de impresso definida usando a varivel areaPagina, que baseada na classe RectangleF.
A varivel formataString usa o mtodo Trimming para determinar quanto texto pode ajustar em uma pgina.
formataString.Trimming = StringTrimming.Word;
e.Graphics.DrawString(stringParaPagina, fontParaImprimir, Brushes.Black, areaPagina, formataString); O If usado para verificar se necessrio mais de uma pgina para imprimir o texto em questo, para tanto ele usa a propriedade HasMorePages.
if (numeroCaracteres < stringParaImprimir.Length) { stringParaImprimir = stringParaImprimir.Substring(numeroCaracteres); e.HasMorePages = true; } else { e.HasMorePages = false; stringParaImprimir = textBox1.Text; }
Talvez o procedimento do evento PrintDocument1_PrintPage tenha sido um pouco complicado comparado com os demais vistos neste curso, no se preocupe, com pouco tempo de experincia voc ser capaz de compreende-lo com facilidade.
14 - Execute sua aplicao. Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 266
Vamos implementar agora o cdigo que permite que o usurio escolha a impressora e o nmero de pginas que deseja imprimir.
17 - Volte novamente para o procedimento do evento do boto Imprimir e altere o cdigo para o seguinte:
stringParaImprimir = textBox1.Text; printDialog1.Document = printDocument1; DialogResult resultado = new DialogResult(); resultado = printDialog1.ShowDialog(); if (resultado == DialogResult.OK) printDocument1.Print();
18 - Execute a aplicao.
Agora antes da impresso exibida a janela Imprimir que permite que o usario escolha a impressora e o nmero de cpias.
20 - Clique em OK para imprimir ou Cancelar para fechar a janela Imprimir e voltar ao Form1 sem realizar a impresso.
22 - De um clique duplo sobre o Button2 (Configurar Impresso) e digite o seguinte cdigo pra o procedimento do evento:
Esse o cdigo que exibe a janela de configurao da impresso e armazena os valores selecionados na varivel ConfiguracaoDePagina.
printDocument1.DefaultPageSettings = configuracaoDepagina;
printDocument1.DefaultPageSettings = configuracaoDepagina; stringParaImprimir = textBox1.Text; printDialog1.Document = printDocument1; DialogResult resultado = new DialogResult(); resultado = printDialog1.ShowDialog(); if (resultado == DialogResult.OK) printDocument1.Print();
24 - Execute a aplicao.
26 - Clique em OK.
pageSetupDialog1.PageSettings = configuracaoDepagina; stringParaImprimir = textBox1.Text; printPreviewDialog1.Document = printDocument1; printPreviewDialog1.ShowDialog(); Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 271
As duas primeiras linhas de cdigo so as mesmas usadas no Button1, a terceira indica que o documento a ser visualizado o PrintDocument1, a ltima linha exibe a visualizao.
29 - Execute a aplicao.
Se voc quizer imprimir diretamente da janela Visualizar Impresso s clicar na Impressora. Voc tambm tem opes de Zoom, seleo de pginas e possibilidade de visualizar vrias pginas de uma s vez na tela. Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 272
32 - Para a aplicao.
Depois de pronta sua aplicao precisa ser distribuida para todos que querem ou precisam us-la. Para usar a sua aplicao, o nico requisito para o computador do cliente que tenha instalado o .NET Framework. Este pode ser instalado diretamente do site da Microsoft, ou ser disponibilizado com sua aplicao no pacote de instalao. Ele tambm disponvel atravs do Windows Update e futuramente deve vir junto com todos os sistemas operacionais da Microsoft. Ento, tendo o .NET Framework instalado na mquina, para sua aplicao funcionar basta voc copiar o arquivo executvel para a mquina em questo e execut-lo. No entanto essa prtica no muito recomendada, mais elegante criar um pacote de instalao para instalar o programa, permitindo assim tambm sua possivel desinstalao atravs do Painel de Controle, Adicionar/Remover programas.
O .NET Framework no funciona no Windows 95, ento no ser possivel rodar sua aplicao neste sistema operacional.
As verses Windows 98, ME, NT 4.0, 2000 e XP permitem a instalao do .NET Framework sem problemas.
Programas que usam o Access como banco de dados tambm precisam que o arquivo do Access seja copiado junto com a instalao. No necessrio ter instalado na mquina que vai o rodar o programa o Microsoft Access, o .NET Framework j contm as classes necessrias para usar o arquivo. Tenha ateno
com o caminho do banco de dados durante a execuo em outros computadores, se o caminho estiver errado a aplicao no vai funcionar corretamente.
Durante este capitulo voc vai aprender a criar o pacote de instalao para os seus programas.
Neste capitulo usaremos o projeto criado na lio 33 Trabalhando com mltiplos formularios.
3 - Na janela New Project, em Project Type, selecione Setup and Deployment Projects.
Merge Module Project - cria um arquivo de instalao do tipo msm que pode ser usado por outras aplicaes.
Cab Project - usado quando voc precisa de arquivos de instalao com tamanho especifico. Se por exemplo sua aplicao tem 30MB e voc quer disponibiliza-la na internet, pode criar 3 arquivos de 10MB para facilitar o download.
Smart Device CAB Project usado para criao de projeto instalao para dispositivos mveis.
Setup Wizard - um assistente, atravs dele voc pode criar os tipos citados acima s que de maneira simplificada.
Isso adiciona o projeto a soluo que esta aberta no Visual Studio, se estiver marcado Create new Solution, o projeto aberto fechado e criado um novo projeto.
6 - Em Name voc pode dar uma nome para seu projeto de instalao, neste exemplo deixarei o padro.
7 - Clique em OK.
O Assistente iniciado.
8 - Clique em Next.
9 - O segundo passo informar o assistente para que tipo de aplicao estamos criando a instalao. Deixe marcado a opo Create a setup for a Windows Application e clique em Next.
Isto informa que nossa aplicao do tipo Windows Application e para tal estamos criando o projeto de instalao.
Na prxima caixa de dilogo voc escolhe os arquivos adicionais que podem ser incluidos na instalao.
Se tiver arquivos adicionais para serem adicionados ao projeto como o arquivo do banco de dados do Access ou algum TXT com informaes sobre o projeto clique em Add para adicionar o arquivo no passo 4 do assistente.
11 - Clique em Next.
12 - Clique em Finish.
O Visual Studio adiciona um novo projeto na soluo chamado Setup1, como voc pode ver no Solution Explorer.
Voc usa o File System Editor para adicionar arquivos no seu projeto de instalao e criar os atalhos do menu Iniciar e Desktop para sua aplicao.
13 - No File System Editor com a pasta Application Folder aberta, de um clique com o boto direito do mouse em Primary Output from Formularios. No menu que se abre clique em Create Shortcut to Primary output from Formularios.
Quando a aplicao for instalada, um atalho para a mesma ser criado no menu Iniciar > Programas. Voc pode adicionar tambm o atalho no Desktop para isso arraste uma cpia do mesmo para a pasta Users Desktop.
17 - Clique em Setup1 na janela Solution Explorer e veja as propriedades disponveis na janela Properties.
A propriedade Author e Manufacturer so geralmente preenchidas com o nome da companhia que desenvolve o software, seus valores tambm so usados para construir o caminho padro onde ser instalado o programa. Uma vez instalado o programa a propriedade Author exibida nas informaes de suporte em Adicionar/Remover Programas no Painel de Controle.
A propriedade Title o nome do programa de instalao e a propriedade Version permite especificar informaes sobre a verso do seu programa de instalao. As propriedades Product Code contm informaes geradas pelo Visual Studio que permitem identificar individualmente distribuies do seu programa. Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 287
18 - Na janela Solution Explorer, clique com o boto direito do mouse sobre Setup1 e clique e em Properties.
exibida a caixa de dilogo Setup1 Property Pages. Esta caixa de dilogo permite que voc altere algumas das opes escolhidas no assistnte (Setup Wizard) caso necessrio e customize algumas configuraes adicionais que no estavam disponveis no assistente.
A caixa Output File Name especifica o nome do arquivo da instalao. Geralmente ele contm a extenso .msi por ser usado pelo Windows Installer.
A caixa de seleo Compression permite escolher a otimizao da compactao dos arquivos de intalao, a maior parte dos programadores escolhe Optimized for Size, que prioriza diminuir o tamanho dos arquivos de instalao. Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 289
19 - Clique em OK.
20 - Um passo importante, simples e que no deve ser esquecido mudar para Release na barra de ferramentas a caixa de seleo Solution Configurations.
Quando estamos criando nossa aplicao importante que esta caixa de seleo esteja marcada com Debug para que possamos usar as ferramentas de depurao de erros do Visual Studio. Com o Debug marcado o programa compilado com informaes extras para permitir a depurao dos erros, essas informaes no so necessrias quando estamos disponibilizando nossa aplicao e tambm ocasionam perda de performance na nossa aplicao.
21 - Na janela Solution Explorer, clique com o boto direito do mouse em Setup1, selecione View, clique em Launch Condition.
Na janela Properties a propriedade InstallUrl setada com uma pgina na Internet que possibilita o download e instalao do .NET Framework, como sabe, necessrio para sua aplicao funcionar. Por padro sempre que inicializado a instalao verificado se o .NET Framework esta instalado na mquina em questo ou no. Se no estiver ele usa essa propriedade, a InstallUrl para fazer o download e instalao do arquivo Dotnetfx.exe, que instala o .NET Framework. Antes de iniciar o download e instalao da Internet ele emite uma mensagem, o contudo desta mensagem est na propriedade Message.
Voc pode disponibilizar o .NET Framework junto com sua instalao, para que no seja necessrio baixar o arquivo da internet. Para isso voc muda a propriedade InstallUrl para o caminho da sua instalao e se desejar muda a propriedade Message para um mensagem mais apropriada. Ser necessrio copiar ento o arquivo Dotnetfx.exe para a pasta de instalao do seu programa ou para a pasta que voc indicar em InstallUrl.
23 -Na janela Solution Explorer, clique com o boto direito sobre Setup1, depois clique em Build.
24 - No Windows Explorer localize a pasta do projeto Setup1, ela foi especificada quando voc criou o projeto.
Eis os arquivos necessrios para a instalao do seu projeto, voc pode copiados em um CD para disponibilizar a instalao do seu programa, como citado anteriormente voc pode copiar para esta pasta tambm o arquivo Dotnetfx.exe para disponibilizar junto a instalao do .NET Framework. Autor: Herbert Moroni Cavallari da Costa Gois Site: www.juliobattisti.com.br e www.linhadecodigo.com.br
Confira tambm o curso: Programando com VB.NET Pgina 294
Vamos agora efetuar a instalao do programa Formularios partir do projeto da instalao que criamos na lio anterior comparando o processo com as configuraes que fizemos no projeto Setup1.
2 - Clique em Next.
Voc v e pode alterar a pasta de instalao do programa, note que o caminho C:\Arquivos de programas\HM\Setup1\, HM o contedo da propriedade Manufacturer, como comentamos na seo anterior. As opes Everyone e Just me tem a ver com a segurana do Windows. Se voc quer disponibilizar o programa apenas para o seu usurio na mquina, marque a opo Just me, se todos os usurios podem executar essa aplicao, marque a opo Everyone.
3 - Clique em Everyone.
4 - Clique em Next.
iniciada a instalao:
7 - Para executar sua aplicao no menu Iniciar > Programa, clique em Formularios.
Uma vantagem de usar o Installer que o programa registrado no Windows possibilitando sua possivel desinstalao atravs do Painel de Controle. Para finalizar este captulo vamos desinstalar nosso programa.
Se voc tivesse apenas copiado seu programa para a mquina de destino ele no apareceria nesta lista.
11 - Clique em Fechar.
12 - Clique em Remover.
13 - Clique em Sim.
O programa desinstalado.