PSI 11ºANO » MÓDULO 8 - Conceitos Avançados de Programação

PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO

1. Modelo de uma aplicação com MDI FORM

MDI Form
é um formulário que pode mostrar vários outros formulários dentro dele, esses formulários também são conhecidos como formulários filho. Podemos dizer que um Form MDI é o form principal.

Para criar um Form MDI, configuramos a propriedade IsMdiContainer como True.

Exemplo 1:

1. Crie uma aplicação em VB

2. Adicione 3 Formulários

3. Configure a propriedade IsMdiContainer do form1 para True

4. Adicione ao Form1 um MenuStrip com as seguintes opções:

5. Implemente as seguintes instruções a cada uma das opções do MenuStrip:

Public Class Form1

Private Sub Form2ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Form2ToolStripMenuItem.Click
Dim form2 As New Form2
form2.MdiParent() = Me
form2.Show()
End Sub

Private Sub Form3ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Form3ToolStripMenuItem.Click
'verificar se o form3 já está aberto
Dim frmCollection = System.Windows.Forms.Application.OpenForms
If frmCollection.OfType(Of Form3).Any Then
frmCollection.Item("Form3").Activate()
Else
Dim form3 As New Form3
form3.MdiParent() = Me
form3.Show()
End If
End Sub

Private Sub LadoALadoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LadoALadoToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileHorizontal)
End Sub

Private Sub LadoALadoVerticalToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LadoALadoVerticalToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileVertical)
End Sub

Private Sub CascataToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CascataToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.Cascade)
End Sub

End Class


EXERCÍCIO 1

  Implemente em VB.NET o exemplo 1.
Teste a aplicação e proceda ás seguintes alterações.
1. Acrescente as instruções necessárias para que o Form2 abra apenas um vez.
2. Acrescente ao MenuStrip a opção sair (e as respetivas instruções para fechar a aplicação).

2. Modelo de uma aplicação com MODAL FORMS

MODAL Form
Os formulários que são exibidos modalmente são normalmente usados como caixas de diálogo logo não permitem o acesso simultaneo a outros forms.
Para exibir um formulário modalmente usa-se o método ShowDialog.

Exemplo 2:

1. Crie uma aplicação em VB com 2 forms.

2. Ao form1 adicione um botão com o text "Adionar", uma label com o text "Click para adicionar um valor e uma ListBox.

3. Ao form2 adicione uma label com o text "Valor" ; uma textbox e 2 botões um com o text "Confirmar" e outro com o text "Cancelar".

4. Coloque as seguintes instruções no Form1:

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim F2 As New Form2

Dim resultado As DialogResult
resultado = F2.ShowDialog(Me)
If resultado = Windows.Forms.DialogResult.OK Then
Me.ListBox1.Items.Add(F2.TextBox1.Text)
End If
End Sub
End Class

 5. Coloque as seguintes instruções no Form2:

Public Class Form2

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.DialogResult = Windows.Forms.DialogResult.OK
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.DialogResult = Windows.Forms.DialogResult.Cancel
End Sub

End Class


EXERCÍCIO 2

  Implemente em VB.NET o exemplo 2.
Teste a aplicação e proceda ás seguintes alterações.
1. Faça surgir uma mensagem de erro caso o utilizador click no botão cancelar do form2.

3. Modelo de uma aplicação para alternar entre forms

http://www.dummies.com/programming/net/opening-closing-and-hiding-forms-with-visual-basic-net/

Exemplo 3:

1. Crie um aplicação em VB

2. Adicione à aplicação 3 FORMS e um MenuStrip com as seguintes opções:

3. Acrescente ao FORM2 um botão com o text "SAIR"; Configure a propriedade FormBorderStyle do Form para none.

4. Acrescente ao FORM3 um botão com o text "SAIR".

5. Introduza as seguintes instruções no FORM1:

Public Class Form1

Private Sub Form2ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Form2ToolStripMenuItem.Click

Dim f2 As New Form2
f2.Show()
f2 = Nothing
Me.Hide()
End Sub

Private Sub Form3ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Form3ToolStripMenuItem.Click
Dim f3 As New Form3
f3.Show()
f3 = Nothing
Me.Hide()
End Sub

Private Sub SairToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SairToolStripMenuItem.Click
Application.Exit()
End Sub
End Class

 6. Introduza as seguintes instruções no FORM2:

Public Class Form2

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
form1.Show()
End Sub

End Class

 7. Introduza as seguintes instruções no FORM3:

Public Class Form3

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
form1.Show()
End Sub

Private Sub Form3_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Form1.Show()
End Sub

End Class

EXERCÍCIO 3

  Implemente em VB.NET o exemplo 3.
Teste a aplicação e proceda ás seguintes alterações.
1. Faça surgir no Form2 os botões maximizar, minimizar e fechar.
2. Faça com que surja o form1 se utilizador fechar a janeka do form2.

4. TABCONTROL
O Windows Forms TabControl exibe várias guias. As guias podem conter imagens e outros objetos.

Exemplo 4:

1. Crie um aplicação em VB.

2. Adicione ao FORM1 um TabControl.

3. Acrescente guias ao TabControl.

4. Adicione os botões seguinte e anterior a cada uma das guias.


5. Para avançar nas guias utiliza-se TabControl1.SelectTab(index). 
Em que Index representa o número da guia a iniciar em 0.

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TabControl1.SelectTab(1)
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
TabControl1.SelectTab(0)
End Sub

End Class

EXERCÍCIO 4

  Implemente em VB.NET o exemplo 4.
Teste a aplicação e proceda ás seguintes alterações.
1. Acrescente 5 guias.
2. Adicione a cada guia os botões anterior e seguinte.
3. Programe os botões para que seja possível a navegação nas guias.