Partilhar via


Objeto MDIForm para usuários do Visual Basic 6.0

No Visual Basic 6.0, um MDIForm era um tipo especial de formulário que atua sistema autônomo um contêiner para um aplicativo MDI (interface de documentos múltiplos). In Visual Basic 2008, qualquer formulário com sua IsMdiContainer conjunto de propriedades sistema autônomo true pode atuar sistema autônomo um contêiner de MDI.

Diferenças Conceituais

Formulários filhos e formulários múltiplos MDI

No Visual Basic 6.0, configuração o MDIChild propriedade em um formulário filho identifica-lo sistema autônomo um filho do formulário MDI; um aplicativo MDI pode ter somente um formulário MDI.

In Visual Basic 2008, o MdiParent propriedade substitui a MDIChild propriedade e identifica o formulário MDI que irá conter o formulário filho; aplicativos MDI podem ter vários recipientes MDI.

Cor do plano de fundo e propriedades da imagem

No Visual Basic 6.0, a cor do plano de fundo de um MDIForm pode ser alterado pelo configuração o BackColor propriedade e uma imagem de plano de fundo podem ser exibidos por configuração o Picture propriedade.

In Visual Basic 2008, não é possível alterar a cor do plano de fundo ou exibir uma figura em um formulário MDI. Embora você possa conjunto o BackColor e BackgroundImage Propriedades no formulário, definindo o IsMdiContainer propriedade para true invalida essas configurações.

Propriedade AutoShowChildren

No Visual Basic 6.0, a AutoShowChildren propriedade de um formulário MDI é usada para exibir um formulário MDI filho quando ele é carregado automaticamente. Formulários padrão não tem esse comportamento; chamar o Load método carrega mas não mostra o formulário.

In Visual Basic 2008, você deve chamar explicitamente o Show método para exibir um formulário MDI filho.

Controles e elementos gráficos em formulários MDI

No Visual Basic 6.0, não é possível adicionar a maioria dos controles em um MDIForm. Você só pode adicionar controles ancorados, sistema autônomo a Menu, StatusBar, ou ToolBar controle. Além disso, métodos gráficos, sistema autônomo Circle ou Line não pode ser usado em um MDIForm.

In Visual Basic 2008, você pode adicionar qualquer controle a um formulário MDI; Entretanto o comportamento pode não ser o que você espera. Quaisquer controles em um formulário com o IsMdiContainer conjunto de propriedades como trueirá "flutuar" por cima de quaisquer formulários filho MDI. Embora você possa fazer chamadas a métodos gráficos no Paint evento, os elementos gráficos não aparecerão em time de execução.

Alterações no código para formulários MDI

Os exemplos a seguir ilustram diferenças na codificação técnicas entre o Visual Basic 6.0 e Visual Basic 2008.

Alterações no código para mostrar formulários MDI filho

O código a seguir demonstra como exibir cinco instâncias de um formulário MDI filho.

' Visual Basic 6.0
Dim F(1 To 4) As New Form1
Private Sub MDIForm_Load()
   Dim i As Integer
   Load Form1
   For i = 1 To 4
      F(i).Caption = "Form" & i + 1
      F(i).Show
   Next I
End Sub
' Visual Basic
Private Sub MDIForm1_Load(ByVal sender As System.Object, ByVal e _
As System.EventArgs) Handles MyBase.Load
  Dim i As Integer = 0
  For i = 0 To 4
      Dim F As New FormChild
      F.Text = "Form " & CStr(i + 1)
      F.Show()
  Next
End Sub

Alterações no código para organizar janelas filhas MDI

O código a seguir demonstra como escrever código para alterar a organização das janelas em um aplicativo MDI.Ele pressupõe que você tenha criado itens de menu para cada opção.

' Visual Basic 6.0
Private Sub menuCascade_Click()
   Me.Arrange vbCascade
End Sub
Private Sub menuTileHorizontally_Click()
   Me.Arrange vbHorizontal
End Sub
Private Sub menuTileVertically_Click()
   Me.Arrange vbVertical
End Sub
' Visual Basic
Private Sub CascadeToolStripMenuItem_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles CascadeToolStripMenuItem.Click

  Me.LayoutMdi(MdiLayout.Cascade)
End Sub
' Visual Basic
Private Sub TileVerticleToolStripMenuItem_Click(ByVal sender As Object, _
ByVal e As EventArgs) Handles TileVerticalToolStripMenuItem.Click

  Me.LayoutMdi(MdiLayout.TileVertical)
End Sub
' Visual Basic
Private Sub TileHorizontalToolStripMenuItem_Click(ByVal sender As Object, _
ByVal e As EventArgs) Handles TileHorizontalToolStripMenuItem.Click

  Me.LayoutMdi(MdiLayout.TileHorizontal)
End Sub

Equivalências de propriedades e métodos no MDIForm

A tabela a seguir lista propriedades do Visual Basic 6.0 e métodos e seus Visual Basic 2008 equivalentes. Somente propriedades e métodos que são exclusivos a MDIForm objeto são listados — para Outros propriedades, métodos e eventos, consulte Objeto Form para usuários do Visual Basic 6.0.

Propriedades e métodos do MDIForm

Visual Basic 6,0

Visual Basic 2008 Equivalente a

Propriedade ActiveForm

ActiveMdiChild

Método Arrange

LayoutMdi

Propriedade AutoShowChildren

Nova implementação.Para obter mais informações, consulte Comportamento do Formulário MDI Show foi alterado.

Propriedade BackColor

Nova implementação.O plano de fundo de um formulário MDI sempre será o padrão (Control).

Propriedade Picture

Nova implementação.Formulários MDI no Visual Basic 2008 não é possível exibir imagens diretamente.

Observações de Atualização

Ao atualizar um aplicativo MDI do Visual Basic 6.0 para Visual Basic 2008, qualquer MDIForm objetos são atualizados para formulários normais e suas IsMdiContainer propriedade é conjunto para true.

In Visual Basic 2008, o AutoShowChildren propriedade não existe. Para emular o comportamento do Visual Basic 6.0, uma linha de código é adicionada durante a atualização para mostrar cada filho formulário se AutoShowChildren é conjunto para true no aplicativo original.

Consulte também

Conceitos

MDI para usuários do Visual Basic 6.0

Objeto Form para usuários do Visual Basic 6.0

Tarefas em formulários para usuários do Visual Basic 6.0

Outros recursos

Aplicativos de Interface de Documentos Múltiplos (MDI)