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

📄 samplemenus.vb

📁 Magic Library 1.7,有说明文档
💻 VB
📖 第 1 页 / 共 3 页
字号:
' *****************************************************************************
' 
'  (c) Crownwood Consulting Limited 2002 
'  All rights reserved. The software and associated documentation 
'  supplied hereunder are the proprietary information of Crownwood Consulting 
'  Limited, Haxey, North Lincolnshire, England and are supplied subject to 
'  licence terms.
' 
'  Magic Version 1.7	www.dotnetmagic.com
' *****************************************************************************

Imports System
Imports System.IO
Imports System.Data
Imports System.Drawing
Imports System.Resources
Imports System.Reflection
Imports System.Collections
Imports System.ComponentModel
Imports System.Windows.Forms
Imports System.Drawing.Drawing2D
Imports Crownwood.Magic.Menus
Imports Crownwood.Magic.Common
Imports Crownwood.Magic.Controls

Public Class MDIContainer
    Inherits System.Windows.Forms.Form

    Private _count As Integer = 1
    Private _images As ImageList = Nothing
    Private _status As StatusBar = Nothing
    Private _statusBarPanel As StatusBarPanel = Nothing
    Private _topMenu As Crownwood.Magic.Menus.MenuControl = Nothing

#Region " Windows Form Designer generated code "

    Public Sub New()
        MyBase.New()

        LoadResources()

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

        'Add any initialization after the InitializeComponent() call
        SetupMenus()
        SetupStatusBar()
    End Sub

    'Form overrides dispose to clean up the component list.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

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

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified Imports the Windows Form Designer.  
    'Do not modify it Imports the code editor.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        components = New System.ComponentModel.Container()
        Me.BackColor = System.Drawing.SystemColors.ControlLight
        Me.ClientSize = New System.Drawing.Size(250, 270)
        Me.Name = "MDIContainer"
        Me.Text = "SampleMenus"
        Me.IsMdiContainer = True
    End Sub

#End Region

    Shared Sub Main()
        Application.Run(New MDIContainer())
    End Sub

    Protected Sub LoadResources()
        ' Create a strip of images by loading an embedded bitmap resource
        _images = ResourceHelper.LoadBitmapStrip(Me.GetType(), _
                                                 "SampleMenus.MenuImages.bmp", _
                                                 New Size(16, 16), _
                                                 New Point(0, 0))
    End Sub

    Protected Sub SetupMenus()
        ' Create the MenuControl
        _topMenu = New Crownwood.Magic.Menus.MenuControl()

        ' We want the control to handle the MDI pendant
        _topMenu.MdiContainer = Me

        ' Create the top level Menu
        Dim top1 As MenuCommand = New MenuCommand("&Appearance")
        Dim top2 As MenuCommand = New MenuCommand("&Windows")
        Dim top3 As MenuCommand = New MenuCommand("A&nimation")
        Dim top4 As MenuCommand = New MenuCommand("&Cities1")
        Dim top5 As MenuCommand = New MenuCommand("&Movies1")
        Dim top6 As MenuCommand = New MenuCommand("Ca&rs1")
        Dim top7 As MenuCommand = New MenuCommand("C&ities2")
        Dim top8 As MenuCommand = New MenuCommand("Mo&vies2")
        Dim top9 As MenuCommand = New MenuCommand("Car&s2")
        _topMenu.MenuCommands.AddRange(New MenuCommand() {top1, top2, top3, top4, top5, top6, top7, top8, top9})

        ' Create the submenus
        CreateAppearanceMenu(top1)
        CreateWindowsMenu(top2)
        CreateAnimationMenu(top3)
        CreateCityMenus(top4, top7)
        CreateMovieMenus(top5, top8)
        CreateCarMenus(top6, top9)

        ' Add to the display
        _topMenu.Dock = DockStyle.Top

        AddHandler _topMenu.Selected, AddressOf OnSelected
        AddHandler _topMenu.Deselected, AddressOf OnDeselected

        Controls.Add(_topMenu)

        ' Create an initial MDI child window
        OnNewWindowSelected(Nothing, EventArgs.Empty)
    End Sub

    Protected Sub CreateAppearanceMenu(ByVal mc As MenuCommand)
        ' Create menu commands
        Dim style1 As MenuCommand = New MenuCommand("&IDE", New EventHandler(AddressOf OnIDESelected))
        Dim style2 As MenuCommand = New MenuCommand("&Plain", New EventHandler(AddressOf OnPlainSelected))
        Dim style3 As MenuCommand = New MenuCommand("-")
        Dim style4 As MenuCommand = New MenuCommand("PlainAsBlock", New EventHandler(AddressOf OnPlainAsBlockSelected))
        Dim style5 As MenuCommand = New MenuCommand("-")
        Dim style6 As MenuCommand = New MenuCommand("Dock Left", New EventHandler(AddressOf OnDockLeftSelected))
        Dim style7 As MenuCommand = New MenuCommand("Dock Top", New EventHandler(AddressOf OnDockTopSelected))
        Dim style8 As MenuCommand = New MenuCommand("Dock Right", New EventHandler(AddressOf OnDockRightSelected))
        Dim style9 As MenuCommand = New MenuCommand("Dock Bottom", New EventHandler(AddressOf OnDockBottomSelected))
        Dim styleA As MenuCommand = New MenuCommand("-")
        Dim styleB As MenuCommand = New MenuCommand("MultiLine", New EventHandler(AddressOf OnMultiLineSelected))
        Dim styleC As MenuCommand = New MenuCommand("-")
        Dim styleD As MenuCommand = New MenuCommand("E&xit", New EventHandler(AddressOf OnExit))

        ' Setup event handlers
        AddHandler style1.Update, AddressOf OnIDEUpdate
        AddHandler style2.Update, AddressOf OnPlainUpdate
        AddHandler style4.Update, AddressOf OnPlainAsBlockUpdate
        AddHandler style6.Update, AddressOf OnDockLeftUpdate
        AddHandler style7.Update, AddressOf OnDockTopUpdate
        AddHandler style8.Update, AddressOf OnDockRightUpdate
        AddHandler style9.Update, AddressOf OnDockBottomUpdate
        AddHandler styleB.Update, AddressOf OnMultiLineUpdate

        mc.MenuCommands.AddRange(New MenuCommand() {style1, style2, style3, style4, style5, style6, _
                                                   style7, style8, style9, styleA, styleB, styleC, styleD})
    End Sub

    Protected Sub CreateWindowsMenu(ByVal mc As MenuCommand)
        ' Create menu commands
        Dim window1 As MenuCommand = New MenuCommand("&New Window", _images, 0, New EventHandler(AddressOf OnNewWindowSelected))
        Dim window2 As MenuCommand = New MenuCommand("Cl&ose", _images, 1, New EventHandler(AddressOf OnCloseWindowSelected))
        Dim window3 As MenuCommand = New MenuCommand("Close A&ll", New EventHandler(AddressOf OnCloseAllSelected))
        Dim window4 As MenuCommand = New MenuCommand("-")
        Dim window5 As MenuCommand = New MenuCommand("Ne&xt", _images, 2, New EventHandler(AddressOf OnNextSelected))
        Dim window6 As MenuCommand = New MenuCommand("Pre&vious", _images, 3, New EventHandler(AddressOf OnPreviousSelected))
        Dim window7 As MenuCommand = New MenuCommand("-")
        Dim window8 As MenuCommand = New MenuCommand("&Cascade", _images, 4, New EventHandler(AddressOf OnCascadeSelected))
        Dim window9 As MenuCommand = New MenuCommand("Tile &Horizontally", _images, 5, New EventHandler(AddressOf OnTileHSelected))
        Dim windowA As MenuCommand = New MenuCommand("&Tile Vertically", _images, 6, New EventHandler(AddressOf OnTileVSelected))

        ' Setup event handlers
        AddHandler window2.Update, AddressOf OnCloseWindowUpdate
        AddHandler window2.Update, AddressOf OnCloseAllUpdate
        AddHandler window5.Update, AddressOf OnNextPreviousUpdate
        AddHandler window6.Update, AddressOf OnNextPreviousUpdate
        AddHandler window8.Update, AddressOf OnLayoutUpdate
        AddHandler window9.Update, AddressOf OnLayoutUpdate
        AddHandler windowA.Update, AddressOf OnLayoutUpdate

        mc.MenuCommands.AddRange(New MenuCommand() {window1, window2, window3, window4, _
                                                   window5, window6, window7, window8, _
                                                   window9, windowA})

        ' Want to know when MenuControl shows/hide PopupMenu
        AddHandler mc.PopupStart, AddressOf OnWindowMenuStart
        AddHandler mc.PopupEnd, AddressOf OnWindowMenuEnd
    End Sub

    Protected Sub CreateAnimationMenu(ByVal mc As MenuCommand)
        ' Create menu commands
        Dim animate1 As MenuCommand = New MenuCommand("Yes - Always animate", New EventHandler(AddressOf OnYesAnimateSelected))
        Dim animate2 As MenuCommand = New MenuCommand("No  - Never animate", New EventHandler(AddressOf OnNoAnimateSelected))
        Dim animate3 As MenuCommand = New MenuCommand("System - Ask O/S", New EventHandler(AddressOf OnSystemAnimateSelected))
        Dim animate4 As MenuCommand = New MenuCommand("-")
        Dim animate5 As MenuCommand = New MenuCommand("100ms", New EventHandler(AddressOf On100Selected))
        Dim animate6 As MenuCommand = New MenuCommand("250ms", New EventHandler(AddressOf On250Selected))
        Dim animate7 As MenuCommand = New MenuCommand("1000ms", New EventHandler(AddressOf On1000Selected))
        Dim animate8 As MenuCommand = New MenuCommand("-")
        Dim animate9 As MenuCommand = New MenuCommand("Blend", New EventHandler(AddressOf OnBlendSelected))
        Dim animateA As MenuCommand = New MenuCommand("Center", New EventHandler(AddressOf OnCenterSelected))
        Dim animateB As MenuCommand = New MenuCommand("+Hor +Ver", New EventHandler(AddressOf OnPPSelected))
        Dim animateC As MenuCommand = New MenuCommand("-Hor -Ver", New EventHandler(AddressOf OnNNSelected))
        Dim animateD As MenuCommand = New MenuCommand("+Hor -Ver", New EventHandler(AddressOf OnPNSelected))
        Dim animateE As MenuCommand = New MenuCommand("-Hor +Ver", New EventHandler(AddressOf OnNPSelected))
        Dim animateF As MenuCommand = New MenuCommand("System", New EventHandler(AddressOf OnSystemSelected))

        ' Setup event handlers
        AddHandler animate1.Update, AddressOf OnYesAnimateUpdate
        AddHandler animate2.Update, AddressOf OnNoAnimateUpdate
        AddHandler animate3.Update, AddressOf OnSystemAnimateUpdate
        AddHandler animate5.Update, AddressOf On100Update
        AddHandler animate6.Update, AddressOf On250Update
        AddHandler animate7.Update, AddressOf On1000Update
        AddHandler animate9.Update, AddressOf OnBlendUpdate
        AddHandler animateA.Update, AddressOf OnCenterUpdate
        AddHandler animateB.Update, AddressOf OnPPUpdate
        AddHandler animateC.Update, AddressOf OnNNUpdate
        AddHandler animateD.Update, AddressOf OnPNUpdate
        AddHandler animateE.Update, AddressOf OnNPUpdate
        AddHandler animateF.Update, AddressOf OnSystemUpdate

        mc.MenuCommands.AddRange(New MenuCommand() {animate1, animate2, animate3, animate4, _
                                                   animate5, animate6, animate7, animate8, _
                                                   animate9, animateA, animateB, animateC, _
                                                   animateD, animateE, animateF})
    End Sub

    Protected Sub CreateCarMenus(ByVal mc1 As MenuCommand, ByVal mc2 As MenuCommand)
        ' Create menu commands
        Dim car1 As MenuCommand = New MenuCommand("Ford", _images, 0)
        Dim car2 As MenuCommand = New MenuCommand("Vauxhall", _images, 1)
        Dim car3 As MenuCommand = New MenuCommand("Opel", _images, 2)
        Dim car4 As MenuCommand = New MenuCommand("Volvo", _images, 5)
        Dim car5 As MenuCommand = New MenuCommand("Lotus", _images, 6, Shortcut.Alt0)
        Dim car6 As MenuCommand = New MenuCommand("Aston Martin", _images, 0, Shortcut.ShiftF1)
        Dim car7 As MenuCommand = New MenuCommand("Ferrari", _images, 1, Shortcut.CtrlShift0)
        Dim car8 As MenuCommand = New MenuCommand("Jaguar", _images, 2, Shortcut.ShiftIns)

        ' Change default properties of some items
        car2.Enabled = False
        car3.Enabled = False
        car4.Break = True
        car6.Infrequent = True
        car5.Infrequent = True

        mc1.MenuCommands.AddRange(New MenuCommand() {car1, car2, car3, car4, car5, car6, car7, car8})
        mc2.MenuCommands.AddRange(New MenuCommand() {car1, car2, car3, car4, car5, car6, car7, car8})
    End Sub

    Protected Sub CreateCityMenus(ByVal mc1 As MenuCommand, ByVal mc2 As MenuCommand)
        ' Create menu commands
        Dim s0 As MenuCommand = New MenuCommand("&Italy", _images, 0, New EventHandler(AddressOf OnGenericSelect))
        Dim s1 As MenuCommand = New MenuCommand("&Spain", _images, 1, New EventHandler(AddressOf OnGenericSelect))
        Dim s2 As MenuCommand = New MenuCommand("&Canada", _images, 2, New EventHandler(AddressOf OnGenericSelect))
        Dim s3 As MenuCommand = New MenuCommand("&France", _images, 3, New EventHandler(AddressOf OnGenericSelect))
        Dim s4 As MenuCommand = New MenuCommand("&Belgium", _images, 4, New EventHandler(AddressOf OnGenericSelect))
        Dim spain0 As MenuCommand = New MenuCommand("&Nerja", _images, 5, New EventHandler(AddressOf OnGenericSelect))
        Dim spain1 As MenuCommand = New MenuCommand("&Madrid", _images, 6, New EventHandler(AddressOf OnGenericSelect))
        Dim spain2 As MenuCommand = New MenuCommand("&Barcelona", _images, 0, New EventHandler(AddressOf OnGenericSelect))
        Dim canada0 As MenuCommand = New MenuCommand("Toronto", _images, 5, New EventHandler(AddressOf OnGenericSelect))
        Dim canada1 As MenuCommand = New MenuCommand("&Montreal", _images, 6, New EventHandler(AddressOf OnGenericSelect))
        Dim canada2 As MenuCommand = New MenuCommand("&Belleville", _images, 0, New EventHandler(AddressOf OnGenericSelect))
        Dim england As MenuCommand = New MenuCommand("England", _images, 2, New EventHandler(AddressOf OnGenericSelect))
        Dim england1 As MenuCommand = New MenuCommand("London", _images, 5, New EventHandler(AddressOf OnGenericSelect))
        Dim england2 As MenuCommand = New MenuCommand("&Birmingham", _images, 6, New EventHandler(AddressOf OnGenericSelect))
        Dim england3 As MenuCommand = New MenuCommand("&Nottingham", _images, 0, New EventHandler(AddressOf OnGenericSelect))

        ' Define hierarchy
        england.MenuCommands.AddRange(New MenuCommand() {england1, england2, england3})
        s1.MenuCommands.AddRange(New MenuCommand() {spain0, spain1, spain2})
        s2.MenuCommands.AddRange(New MenuCommand() {canada0, canada1, canada2, england})
        mc1.MenuCommands.AddRange(New MenuCommand() {s0, s1, s2, s3, s4})
        mc2.MenuCommands.AddRange(New MenuCommand() {s0, s1, s2, s3, s4})

        ' Change default properties of some items
        spain0.Infrequent = True
        spain1.Infrequent = True

        Dim fs As FontStyle = FontStyle.Bold + FontStyle.Italic

⌨️ 快捷键说明

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