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!