Ambiente de Programação Visual Trabalhando com MDI e Menus Prof. Mauro Lopes 1-31 22
Objetivos Nesta aula iremos apresentar o desenvolvimento de uma aplicação padrão MDI. Este modelo de aplicação é muito comum em aplicações desktop. Boa aula a todos. 2
Plano de Aula Trabalhando com MDI e Menus O que é MDI; SDI x MDI; Criando uma aplicação MDI; Trabalhando com o componente MenuStrip; Chamando um Formulário Filho Saindo da Aplicação Atividades 3
O que é MDI A interface MDI ou Multiple Document Interface usada em aplicações Windows Forms é um conceito antigo e bem difundido; A interface MDI funciona como um container que pode conter diversos outros formulários; Um exemplo de aplicação muito conhecida que usa essa interface é o Microsoft Word; Geralmente trabalhamos aqui o conceito de formulários Pai e Filhos. 4
O que é MDI PAI FILHOS 5
SDI x MDI Em uma aplicação SDI (Single Document Interface), cada janela contém um documento único, portanto, quando o usuário quer abrir mais documentos do aplicativo, deve abrir uma nova janela. Um exemplo de aplicativo SDI em Windows é o Bloco de notas; Os aplicativos SDI tendem a ser mais robustos e ter menos erros que os MDI, uma vez que erro sério com um documento raramente afeta os outros documentos num ambiente SDI; No entanto o padrão atual para desenvolvimento de aplicações desktop é o uso do MDI. 6
Criando uma Aplicação MDI A primeira ação é criar uma aplicação do tipo Windows Forms; A segunda ação é transformar o formulário inicial em um formulário PAI; Para fazer isso, altere as seguintes propriedades do formulário: Name:frmPai Text:Formulário Pai WindowState: Maximized IsMdiContainer: True É a propriedade IsMdiContainer que torna o nosso form em um formulário Pai. 7
Criando uma Aplicação MDI A propriedade IsMdiContainer 8
Criando uma Aplicação MDI Nosso próximo passo é criarmos os formulários Filhos; Para isso, clique com o botão direito do mouse sobre o projeto no Solution Explorer, vá em Add e logo após em Windows Form ; Na janela que se abriu mude o campo Name para FrmFilho e clique em OK; Vamos alterar a propriedade Text do nosso formulário Filho: Text:Formulário Filho Mas como faremos para esse formulário Filho ser chamado a partir do Pai. Usaremos o MenuStrip. 9
Criando uma Aplicação MDI Adicionando Formulários a aplicação. 10
Trabalhando com o componente MenuStrip Nas aplicações for Windows a presença de menus é bastante comum. Em aplicações MDI é um item quase obrigatório; Os Menus expõem as funcionalidades da aplicação para os usuários, através de teclas de comandos que são agrupados por um tema comum; Observe os menus da IDE que estamos utilizando; Para criar menus no C#, utilizamos o componente MenuStrip.Este permite criar facilmente menus, como os encontrados no Microsoft Office; Aos menus, podemos adicionar barras de separação, teclas de atalho, caixas de seleção, etc. 11
Trabalhando com o componente MenuStrip O nosso Form Pai irá conter o menu que irá chamar os Forms Filhos; Desta forma vamos incluir o componente MenuStrip no Form Pai; O componente não é anexado ao formulário, ele fica em uma área separada do form; Altere a propriedade Name do MenuStrip para menuprincipal; Vamos ver como adicionar Menus e Itens de Menus ao MenuStrip. 12
Edição dos Itens de um MenuStrip Para trabalhar com o MenuStrip é possível usar uma janela especial para isso, basta acessar a Smart Tag dos mesmo e clicar em Edit Items, como é ilustrado abaixo. 13
Edição dos Itens de um MenuStrip 14
Edição dos Itens de um MenuStrip 15
Chamando um Formulário Filho Vamos deixar nossa aplicação com essa aparência: 16
Chamando um Formulário Filho Para incluir o código que irá chamar o formulário filho, devemos dar um duplo clique no item do menu Form Filho; 17
Saindo da Aplicação Para incluir o código que irá sair da aplicação devemos dar um duplo clique na opção SAIR do menu; Basta adicionar o código Application.Exit(); 18
Atividades Crie mais uma opção de menu para abrir um novo formulário; Quando a opção de SAIR for escolhida use um MessageBox para confirmar a saída da aplicação; Pesquise o método ShowDialog() de um Form. Qual a diferença deste método para o método Show() que apresenta um formulário. 19
Perguntas Página do Professor Mauro: http://www.dai.ifma.edu.br/~mlcsilva 20
Próxima Aula... Acessando Banco de Dados usando C#. 21
Referências Materiais avulsos da Internet e o livro C#: Guia do Programador, Joel Saade - Editora Novatec, 687 páginas. 22