【发布时间】:2010-01-13 20:38:48
【问题描述】:
我正在开发一个使用 MDI 的 .NET 2.0 WinForms 应用程序。
当我在 Windows 7 下对其进行测试时,它可以完美运行,但是当我在 Windows XP 中安装完全相同的应用程序时,子窗口不再是 MDI 窗口。我可以将它们拖出它们的父窗口。
有人对这种奇怪的行为有解释吗?
更新:它适用于 Windows 7 和 Vista。它在 XP 上构建时可以在 XP 上运行,但是构建项目并将其部署到 XP 然后它就不起作用了。这越来越陌生了。
代码(我删掉了不处理表格的部分)
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
【问题讨论】:
-
完成了,我剪掉了不相关的部分(它们绝对不接触表格)
-
顺便说一句,您可以通过写
gebruikers.Visible = Not gebruikers.Visible来切换表单的可见性。