⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mdiform.vb

📁 Mastering VBNet Include Source Code
💻 VB
字号:
Option Strict On
Public Class MDIForm
    Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

    Public Sub New()
        MyBase.New()

        'This call is required by the Windows Form Designer.
        InitializeComponent()

        'Add any initialization after the InitializeComponent() call

    End Sub

    Private WithEvents MainMenu1 As System.Windows.Forms.MainMenu
    Private WithEvents MdiClient1 As System.Windows.Forms.MdiClient
    Private WithEvents WindowArrange As System.Windows.Forms.MenuItem
    Private WithEvents FileMenu As System.Windows.Forms.MenuItem
    Private WithEvents FileNew As System.Windows.Forms.MenuItem
    Private WithEvents FileExit As System.Windows.Forms.MenuItem
    Private WithEvents WindowMenu As System.Windows.Forms.MenuItem
    Private WithEvents WindowTileH As System.Windows.Forms.MenuItem
    Private WithEvents WindowTileV As System.Windows.Forms.MenuItem
    Private WithEvents WindowCascade As System.Windows.Forms.MenuItem

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.Container

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.WindowMenu = New System.Windows.Forms.MenuItem()
        Me.WindowTileH = New System.Windows.Forms.MenuItem()
        Me.WindowTileV = New System.Windows.Forms.MenuItem()
        Me.WindowCascade = New System.Windows.Forms.MenuItem()
        Me.WindowArrange = New System.Windows.Forms.MenuItem()
        Me.MainMenu1 = New System.Windows.Forms.MainMenu()
        Me.FileMenu = New System.Windows.Forms.MenuItem()
        Me.FileNew = New System.Windows.Forms.MenuItem()
        Me.FileExit = New System.Windows.Forms.MenuItem()
        Me.MdiClient1 = New System.Windows.Forms.MdiClient()
        Me.SuspendLayout()
        '
        'WindowMenu
        '
        Me.WindowMenu.Index = 1
        Me.WindowMenu.MdiList = True
        Me.WindowMenu.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.WindowTileH, Me.WindowTileV, Me.WindowCascade, Me.WindowArrange})
        Me.WindowMenu.MergeOrder = 9
        Me.WindowMenu.Text = "Window"
        '
        'WindowTileH
        '
        Me.WindowTileH.Index = 0
        Me.WindowTileH.Text = "Tile Horizontally"
        '
        'WindowTileV
        '
        Me.WindowTileV.Index = 1
        Me.WindowTileV.Text = "Tile Vertically"
        '
        'WindowCascade
        '
        Me.WindowCascade.Index = 2
        Me.WindowCascade.Text = "Cascade"
        '
        'WindowArrange
        '
        Me.WindowArrange.Index = 3
        Me.WindowArrange.Text = "Arrange"
        '
        'MainMenu1
        '
        Me.MainMenu1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.FileMenu, Me.WindowMenu})
        '
        'FileMenu
        '
        Me.FileMenu.Index = 0
        Me.FileMenu.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.FileNew, Me.FileExit})
        Me.FileMenu.MergeType = System.Windows.Forms.MenuMerge.MergeItems
        Me.FileMenu.Text = "File"
        '
        'FileNew
        '
        Me.FileNew.Index = 0
        Me.FileNew.Text = "New"
        '
        'FileExit
        '
        Me.FileExit.Index = 1
        Me.FileExit.MergeOrder = 99
        Me.FileExit.Text = "Exit"
        '
        'MdiClient1
        '
        Me.MdiClient1.Dock = System.Windows.Forms.DockStyle.Fill
        Me.MdiClient1.Name = "MdiClient1"
        Me.MdiClient1.TabIndex = 0
        '
        'MDIForm
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(648, 433)
        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.MdiClient1})
        Me.IsMdiContainer = True
        Me.Menu = Me.MainMenu1
        Me.Name = "MDIForm"
        Me.Text = "MDIForm"
        Me.ResumeLayout(False)

    End Sub

#End Region

    Public Shared activeChildForm As DocumentForm
    Private Sub FileNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FileNew.Click
        Dim child1 As New DocumentForm()
        child1.MdiParent = Me
        child1.Show()
        child1.Text = "Untitled"
    End Sub

    Private Sub MDIForm_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
        ' The following statements demonstrate how you can access all child forms
        ' of the MDI parent form and find out whether their text has been edited.
        ' Then, you can prompt the user to save each file.
        ' The sample code prints the names of the documents that have been edited
        ' on the Output window.
        ' The changedFiles Boolean variable is set to True event if one of the documents
        ' has been edited.
        ' The listChangedFiles is a string variable that contains the names of the documents
        ' that have been modified (and should be saved).
        '
        ' THE CODE SHOWN IN THE TEXT RESIDES IN THE CLOSING EVENT HANDLER OF THE
        ' CHILD FORMS AND PROMPTS THE USER FOR EACH EDITED DOCUMENT. THE TWO
        ' APPROACHES ARE EQUIVALENT. 
        '
        ' Dim changedFiles As Boolean = False
        ' Dim cfrm As DocumentForm
        ' Dim listChangedFiles As String
        ' For Each cfrm In Me.MdiChildren
        '     If cfrm.Editor.Modified Then
        '         changedFiles = True
        '         listChangedFiles = listChangedFiles & cfrm.Text & vbCrLf
        '     End If
        ' Next
        ' If listChangedFiles <> "" Then Console.WriteLine(listChangedFiles)
        '
        ' Since the program handles the closing of each document individually, 
        ' there's no need to program the MDI form's Closing event. The following event handler
        ' was included for demonstration purposes and you can safely remove this event handler.
        Dim reply As MsgBoxResult
        reply = MsgBox("Are you sure you want to terminate the application?", MsgBoxStyle.YesNo)
        If reply = MsgBoxResult.No Then
            e.Cancel = True
            Exit Sub
        Else
            End
        End If
    End Sub

    Private Sub MDIForm_MdiChildActivate(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.MdiChildActivate
        If Me.ActiveMdiChild Is Nothing Then
            Me.Text = "MDIPad - no document"
        Else
            Me.Text = Me.ActiveMdiChild.Text
            ' IF OPTION STRICT = OFF THEN THE FOLLOWING STATEMENT CAN BE WRITTEN AS:
            ' activeChildForm = Me.ActiveMdiChild
            activeChildForm = CType(Me.ActiveMdiChild, DocumentForm)
        End If
    End Sub

    Private Sub FileExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FileExit.Click
        Me.Close()
    End Sub

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

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

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

    Private Sub WindowArrange_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles WindowArrange.Click
        Me.LayoutMdi(MdiLayout.ArrangeIcons)
    End Sub
End Class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -