Bruno C. de Paula
Windows Forms
2º Semestre 2010 > PUCPR > TPU
05/11/2015
Resumo
O objetivo desta aula é conhecer a biblioteca
Windows Forms;
Esta biblioteca é utilizada na criação de interfaces
gráficas voltadas para ambiente Desktop;
Vamos nos focar, nesta aula, em entender a
organização de arquivos do Windows Forms, os
grupos de componentes e sua instanciação em
tempo de execução;
Em ambiente Windows temos muito mais poder do
que em ambiente web: threads, sockets,
impressão, 3d, etc.
2
Você não está aprendendo só
Windows Forms!
A
3
filosofia RAD (Rapid Application
Development) aplicada em Windows
Forms é semelhante a de diversas
bibliotecas: Swing, Qt, VLC (Delphi),etc.
4
Grupos de Componentes
Visual
Studio 2008 / Windows Forms;
Aproximadamente 60 controles já instalados;
A maior parte dos componentes é derivado de
uma classe do namespace System.Windows;
Componentes tem um aspecto diferente em
tempo de projeto e em tempo de
execução.
5
Tempo de Projeto
6
Tempo de Execução
7
Tempo de Projeto
8
Common Controls
Common
Controls:
21 controles;
principais controles;
interface Windows
básica;
05/11/2015
9
Containers
6
controles;
Organizam os
demais controles
em painéis,
abas, grupos;
10
Menus e Toolbars
5
controles;
Itens de menu;
Barras de ferramentas;
11
Data
4
controles;
Acesso a:
banco de
dados;
Arquivos XML;
Arquivos
texto;
Etc.
12
Components
14
componentes;
Componentes diversos;
Sem representação visual;
13
Printing
5
controles;
Gerenciamento de
impressão;
14
Dialogs
5
componentes;
Caixas de Diálogo;
15
WPF Interoperability
1
componente;
Permite que se
use interfaces
WPF dentro de
Windows Forms.
16
Outros
Centenas
de opções instaláveis pela Internet;
Ver: http://windowsclient.net/default.aspx
17
Windows Forms Designer
Componentes
visuais:
Caixa de Texto, Botão,
etc.
Componentes nãovisuais:
Timer;
Acesso à Porta Serial;
Componentes instanciados
em tempo de execução.
18
19
Componentes Visuais e Não-Visuais
Definição e Instanciação automática ao
arrastar o controle na tela;
Valores das principais propriedades também
são preenchidos;
No caso dos componentes visuais: colocação em
um contâiner pai;
Cada componente está associado a uma variável
da classe do formulário no qual está o componente
(FormXXX.Designer.cs);
Nome da
Instância
Classe do
Componente
21
Definição automática
22
Instanciação automática
23
Preenchimento de Propriedades
24
Colocação em um contâiner pai
25
Grupos de Propriedades
Accessibility:
acessibilidade;
Appearance: aparência gráfica,
corresponde ao CSS, depende do
componente;
Behavior: comportamento, geralmente
associado a um código, depende do
componete;
Data: ligação entre controles e dados;
26
Grupos de Propriedades
Design: como a
instância do objeto
deve ser criada;
Focus: controla a
validação dos dados;
Layout: estilo de
layout, corresponde ao
layout em CSS.
Componentes criados em tempo de
execução (criação e propriedades)
//
1) Criar a instância do botão.
Button b = new Button();
// 2) Colocar na posição (0,0)
b.Location = new Point(0, 0);
// 3) Criar com largura 100 x 20px
b.Size = new Size(100, 20);
// 4) Colocar o texto no botão.
b.Text = "Sou um botão!";
27
28
Eixo X e Y na tela!
Componentes criados em tempo de execução
(colocação em um contâiner pai)
29
//
5) Colocar em Contâiner Pai. Supondo que
esteja no form.
Controls.Add(b);
Outra
possibilidade, colocação em Group Box
(tipo de painel):
groupBox1.Controls.Add(b);
Componentes criados em tempo de
execução (eventos via Delegates)
//6)
Associar o método ExibirMensagem ao
evento:
b.Click += new
EventHandler(ExibirMensagem);
30
Componentes criados em tempo de
execução
31
private void ExibirMensagem(object
sender, EventArgs e)
{
//...
}
sender: objeto foco do evento;
e: informações relacionadas ao evento;
32
Exemplo completo!
Cuidado com o type casting!