📄 samplemenus.vb
字号:
' *****************************************************************************
'
' (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 + -