我正在使用使用MDI的.NET 2.0 WinForms应用程序。Windows XP中的MDI问题
当我在Windows 7下测试它时,它完美地工作,但是当我在Windows XP中安装完全相同的应用程序时,子窗口不再是MDI窗口。我可以将它们拖出父窗口。
有没有人对这种奇怪的行为有解释?
更新:它适用于Windows 7和Vista。它在XP上构建时工作在XP上,但构建项目并将其部署到XP后无法工作。这一点越来越陌生。
代码(我切出不处理表格的部分),如果孩子形式加载它们被分配MdiParent属性之前
Imports Model = TakeHomeModel
Imports System.Windows.Forms
Public Class MainForm
Private WithEvents gebruikers As frmGebruikers
Private WithEvents fotos As frmFotos
Private WithEvents tweets As frmTweets
Private rapport As frmReport
Private zoeker As New frmZoek
Private Sub GebruikersToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GebruikersToolStripMenuItem.Click
If gebruikers.Visible = False Then
gebruikers.Show()
Else
gebruikers.Hide()
End If
End Sub
Private Sub MainForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Icon = My.Resources.appico
Model.InitDatabase(My.Application.Info.DirectoryPath & "\takehome.accdb")
gebruikers = New frmGebruikers
fotos = New frmFotos
tweets = New frmTweets
rapport = New frmReport
rapport.MdiParent = Me
gebruikers.MdiParent = Me
fotos.MdiParent = Me
tweets.MdiParent = Me
zoeker.MdiParent = Me
End Sub
Private Sub FotosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FotosToolStripMenuItem.Click
If fotos.Visible = False Then
fotos.Show()
Else
fotos.Hide()
End If
End Sub
Private Sub TweetsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TweetsToolStripMenuItem.Click
If tweets.Visible = False Then
tweets.Show()
Else
tweets.Hide()
End If
End Sub
End Class
你能告诉我们你的代码吗? – SLaks 2010-01-13 20:42:48
完成后,我剪掉了不相关的部分(他们绝对不要触摸表单) – 2010-01-13 20:58:50
顺便说一下,您可以通过编写'gebruikers.Visible = Not gebruikers.Visible'来切换表单的可见性。 – SLaks 2010-01-13 22:23:47