Documente Academic
Documente Profesional
Documente Cultură
NET
Avanando WinForms
WinForms uma coleo de classes e tipos que encapsulam e estendem a API win32 em um modelo de objetos organizados. Os componentes usados para criar aplicaes GUI do Windows so fornecidos como classes .NET e disponibilizados por herana.
Programao em C#
Avanando WinForms
mltiplos documentos abertos simultaneamente SDI (Single Document Interface) permite a abertura de apenas um documento de cada vez. permitem que o usurio trabalhe com eles e faa algo em outro form com ele ainda ativo.
Programao em C# 3
Dentro de SDIs:
Forms normais:
Avanando WinForms
Forms modais:
no permitem que se faa nada dentro do sistema, exceto manipular o form ativo.
Programao em C#
Um Exemplo MDI
Programao em C#
Um Exemplo MDI
Arquivo submenus: Novo, Fechar e Sair Janela submenus: Horizontal, Vertical e Cascata
Programao em C#
Um Exemplo MDI
Form filho
Name: formSon
Crie uma varivel do tipo inteiro privada para armazenar a quantidade de forms filhos criados dinamicamente.
Programao em C#
Um Exemplo MDI
Clique no item de menu Novo e insira o seguinte cdigo que criar nossos forms filhos:
Programao em C#
Um Exemplo MDI
Programao em C#
10
Um Exemplo MDI
Programao em C#
11
O Projeto SDI
Crie um Windows Application Renomeie o form para mainForm. Insira um componente menu:
Adicione 2 novos forms. Renomeie-os para frmVerde e frmAzul. Altere a cor de fundo para a cor de batismo.
Programao em C#
12
O Projeto SDI
Programao em C#
13
O Projeto SDI
Show() no deixa o foco fixo no formulrio criado. ShowDialog() o foco somente no formulrio criado, no podendo fazer mais nada at fech-lo.
Programao em C#
14
Insira mais um elemento amarelo (menu e form) Vamos generalizar para no haver repetio de cdigo.
Programao em C#
15
Programao em C#
16
O form chamador deve sempre conter o valor a ser passado. Imagine que uma rotina ser implementada no frmAmarelo quando o mainForm o chamar. Depois notamos que o frmAzul tambm chamar o frmAmarelo. Se a rotina est no frmAmarelo teremos que acrescentar um if para ver se quem chamou o Amarelo foi o mainForm.
Programao em C# 17
Imagine a situao que voc tem vrios forms chamando outros e precisar de vrios ifs para saber quem chamou quem. Portanto, para passar valor entre forms mais aconselhvel deixar o valor ou rotina no form chamador. Continue o exerccio anterior colocando um label em cada um dos forms coloridos
Programao em C#
18
A idia que este label apresente na sua propriedade Text quem o invocou. Deixe todos os labels com o mesmo nome. Insira 2 botes em cada um dos forms coloridos para chamar os outros forms coloridos. Coloque no Text dos botes a cor do form a ser chamado.
Programao em C# 19
Programao em C#
20
Alterar a chamada dos forms coloridos no mainForm. Alterar o modificador dos labels para public. Inserir o seguinte cdigo:
Programao em C#
21
AcceptButton
AllowDrop
Determina se o form aceita drag-n-drop messages. Determina se o form pode escalar dependendo da
fonte.
AutoScale
Programao em C#
22
AutoScroll
Programao em C#
23
CancelButton
ControlBox, MazimixeB
form.
Maximizar, minimizar, fechar e help no captio do Especifica como a borda do form ser apresentada.
Programao em C# 24
FormBorderStyle
Determina se o form um MDIContainer ou no. Determina a linguagem do form. Habilita a habilidade de mover e redesenhar
componentes do form.
Programao em C#
25
Opacity
ShowInTaskBar Size
Programao em C#
26
StartPosition Text
Posio inicial do form na rea de trabalho. Texto que ser mostrado na caption bar. o estado inicial da janela (minimizado, normal ou
maximizado).
Window State
Programao em C#
27
Componentes Dinmicos
Adicionar componentes durante a execuo de um programa pode muitas vezes ser til. No s componentes, mas tambm eventos e delegaes. Suponha um projeto Windows Application e que desejamos inserir um novo boto a partir de um clique no form com o boto esquerdo.
Programao em C#
28
Componentes Dinmicos
Programao em C#
29
Componentes Dinmicos
Programao em C#
30
Componentes Dinmicos
Para criarmos eventos de forma dinmica precisamos fazer a assinatura do evento, ou seja, fornecer o cdigo que ser executado quando um evento gerado no formato idntico ao manipulador de eventos. A assinatura faz parte da definio do evento e especificada por uma delegao (delagation). Delegation um handle para uma funo em memria.
31
Programao em C#
Componentes Dinmicos
Algo como tipos por referncia porm ao invs de conter valores para variveis, contm um endereo de uma funo. Vamos criar uma calculadora em que todos os seus botes e eventos Click sero criados dinamicamente. Crie um projeto Windows Application e coloque apenas um TextBox prximo ao topo.
Programao em C#
32
Componentes Dinmicos
Name = tbDisplay. BorderStyle = none Enabled = false Text = 0 Vamos inicialmente declarar as variveis que vamos utilizar:
Programao em C#
33
Componentes Dinmicos
O prximo passo criar a rotina que vai gerar, denominar e mostrar os botes no form.
Programao em C#
34
Componentes Dinmicos
Programao em C#
35
Componentes Dinmicos
Devemos agora inserir os eventos de Click em cada um dos botes. Adicione o cdigo abaixo no mtodo AdicioneBotoes.
Programao em C#
36
Componentes Dinmicos
Programao em C#
37
Componentes Dinmicos
O objeto usado para gerar eventos uma instncia da classe System.EventHandler. Ao escrever a funo disparada pelo evento, como ClickNumero, devemos nos preocupar com que a assinatura da funo seja idntica delegao padro do .NET para o evento Click.
Programao em C#
38
Componentes Dinmicos
Os valores sero acumulados na varivel Valor1 at que um operador seja clicado. Ento o tipo de operador armazenado e os prximos valores lanados so colocados no Valor2. Ao clicar em =, o operador armazenado no TipoOperador resgatado para podermos fazer a operao em si. O valor resultado volta para o Valor1 que ento impresso na tela.
Programao em C# 39
Componentes Dinmicos
Programao em C#
40
Componentes Dinmicos
Programao em C#
41
Componentes Dinmicos
Programao em C#
42