📄 frmmain.vb
字号:
dotNetBarManager1.Items("bPrint").Enabled = True
dotNetBarManager1.Items("bPrintPreview").Enabled = True
dotNetBarManager1.Items("bPageSetup").Enabled = True
End If
End Sub
Private Sub frmMain_MdiChildActivate(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.MdiChildActivate
EnableFileItems()
End Sub
Private Sub OpenDocument()
openFileDialog1.FileName = ""
openFileDialog1.ShowDialog()
If openFileDialog1.FileName = "" Then Exit Sub
Dim doc As frmDocument = New frmDocument()
doc.Text = openFileDialog1.FileName
doc.MdiParent = Me
doc.Show()
doc.OpenFile(openFileDialog1.FileName)
End Sub
Public Sub SaveDocument()
If Me.ActiveMdiChild Is Nothing Then Exit Sub
Dim doc As frmDocument = CType(Me.ActiveMdiChild, frmDocument)
If doc Is Nothing Then Exit Sub
If Not doc.DocumentChanged Then Exit Sub
SaveDocument(doc)
End Sub
Public Sub SaveDocument(ByVal doc As frmDocument)
If doc.FileName = "" Then
Dim dr As DialogResult = saveFileDialog1.ShowDialog()
If saveFileDialog1.FileName = "" Then Exit Sub
If dr = DialogResult.OK Then doc.FileName = saveFileDialog1.FileName
End If
If doc.FileName <> "" Then doc.SaveFile()
End Sub
Private Sub SaveDocumentAs()
If Me.ActiveMdiChild Is Nothing Then Exit Sub
Dim doc As frmDocument = CType(Me.ActiveMdiChild, frmDocument)
If doc Is Nothing Then Exit Sub
If Not doc.DocumentChanged Then Exit Sub
If doc.FileName = "" Then
SaveDocument(doc)
Exit Sub
End If
saveFileDialog1.ShowDialog()
If saveFileDialog1.FileName = "" Then Exit Sub
doc.FileName = saveFileDialog1.FileName
doc.SaveFile()
End Sub
Private Sub dotNetBarManager1_ContainerLoadControl(ByVal sender As Object, ByVal e As System.EventArgs) Handles dotNetBarManager1.ContainerLoadControl
Dim containerItem As ControlContainerItem
Dim checkbox As CheckBox
Dim item As BaseItem = CType(sender, BaseItem)
If item Is Nothing Then Exit Sub
If item.Name = "bChangeStyle" Then
containerItem = CType(item, ControlContainerItem)
checkbox = New CheckBox()
checkbox.Text = "OfficeXP Style"
checkbox.FlatStyle = FlatStyle.Flat
checkbox.Size = New System.Drawing.Size(95, 17)
checkbox.TabStop = False
checkbox.Checked = True
m_CheckStyle = checkbox
containerItem.Control = m_CheckStyle
ElseIf item.Name = "cTaskShowatstartup" Then
containerItem = CType(item, ControlContainerItem)
checkbox = New CheckBox()
checkbox.Text = "Show at startup"
checkbox.FlatStyle = FlatStyle.Flat
checkbox.Size = New System.Drawing.Size(95, 17)
checkbox.TabStop = False
checkbox.Checked = True
m_CheckTaskShowStartup = checkbox
containerItem.Control = m_CheckTaskShowStartup
ElseIf item.Name = "dockTaskList" Then
' See DefinitionLoaded event handler for Customize menu assignment for the bar that is containing this dock item
Dim dockItem As DockContainerItem = CType(item, DockContainerItem)
dockItem.Control = New TaskList()
' Setting Displayed property for DockContainerItem will make sure that its tab is displayed first
dockItem.Displayed = True
ElseIf item.Name = "dockSearchResults" Then
' Just add the list box as a example...
Dim dockItem As DockContainerItem = CType(item, DockContainerItem)
Dim listbox As ListBox = New ListBox()
' This will set the minimum size for the DockContainerItem
listbox.Size = New Size(32, 32)
' Must let the DockContainerItem resize it at will...
listbox.IntegralHeight = False
dockItem.Control = listbox
End If
End Sub
Private Sub m_CheckStyle_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles m_CheckStyle.CheckedChanged
If m_CheckStyle.Checked Then
dotNetBarManager1.Style = eDotNetBarStyle.OfficeXP
If dotNetBarManager1.IsThemeActive Then
Dim item As BaseItem = dotNetBarManager1.GetItem("bThemes")
item.Visible = True
CType(item.ContainerControl, Bar).RecalcLayout()
End If
Else
dotNetBarManager1.Style = eDotNetBarStyle.Office2000
If dotNetBarManager1.IsThemeActive Then
dotNetBarManager1.GetItem("bThemes").Visible = False
End If
End If
End Sub
Private Sub m_CheckTaskShowStartup_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles m_CheckTaskShowStartup.CheckedChanged
MessageBox.Show("This item is here for demonstration purposes only and code should be added to save the state of it.")
End Sub
Private Sub dotNetBarManager1_DefinitionLoaded(ByVal sender As Object, ByVal e As System.EventArgs) Handles dotNetBarManager1.DefinitionLoaded
' Assign optional "Customize" menu to the bar that contains this item
dotNetBarManager1.Bars("barTaskList").CustomizeMenu = CType(dotNetBarManager1.ContextMenus("bTaskListMenu"), PopupItem)
End Sub
Private Sub dotNetBarManager1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles dotNetBarManager1.MouseEnter
' Sync Status-bar with the item tooltip...
Dim item As BaseItem = CType(sender, BaseItem)
If item Is Nothing Then Exit Sub
dotNetBarManager1.Bars("barStatus").Items("lStatus").Text = item.Tooltip
' Disable timer...
If item.Name = "bThemes" And Timer1.Enabled Then
Timer1.Enabled = False
CType(item, ButtonItem).ForeColor = Color.Empty
End If
End Sub
Private Sub dotNetBarManager1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles dotNetBarManager1.MouseLeave
dotNetBarManager1.Bars("barStatus").Items("lStatus").Text = ""
End Sub
Private Sub frmMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
ChangeDotNetBarStyle(eDotNetBarStyle.Office2003)
' This makes sure that Theme support is enabled by the end-user as well as present on this OS
If dotNetBarManager1.IsThemeActive Then
dotNetBarManager1.GetItem("bThemes").Visible = True
Timer1.Enabled = True
End If
' Neccessary for Automatic Tab-Strip Mdi support
tabStrip1.MdiForm = Me
' Setup Context menu for the barTaskList TabStrip...
Dim barTask As Bar = dotNetBarManager1.Bars("barTaskList")
dotNetBarManager1.SetContextMenuEx(barTask, "bDockContext")
End Sub
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
' Flash Item to attract attention...
Dim item As ButtonItem = CType(dotNetBarManager1.GetItem("bThemes"), ButtonItem)
If item.ForeColor.Equals(Color.Red) Then
item.ForeColor = Color.Empty
Else
item.ForeColor = Color.Red
End If
End Sub
Private Sub EnableThemes(ByVal item As ButtonItem)
Dim bEnable As Boolean = Not item.Checked
item.Checked = bEnable
If bEnable Then
item.Text = "Disable Themes"
Else
item.Text = "Enable Themes"
End If
dotNetBarManager1.ThemeAware = bEnable
Me.Refresh()
End Sub
Private Sub dotNetBarManager1_PopupOpen(ByVal sender As Object, ByVal e As DevComponents.DotNetBar.PopupOpenEventArgs) Handles dotNetBarManager1.PopupOpen
Dim item As BaseItem = CType(sender, BaseItem)
If item Is Nothing Then Exit Sub
If item.Name = "bTabContext" Then
' Enable/Disable the document related menu items based on where user right-clicked...
Dim tab As TabItem = TabItemFromPoint(tabStrip1.PointToClient(Control.MousePosition))
' If no tab is under the mouse disable document related items...
If tab Is Nothing Then
item.SubItems("bClose").Enabled = False
item.SubItems("bSave").Enabled = False
Else
item.SubItems("bClose").Enabled = True
item.SubItems("bSave").Enabled = True
' Make sure that tab under the mouse is active tab
tabStrip1.SelectedTab = tab
End If
ElseIf item.Name = "bDockContext" Then
Dim barTask As Bar = dotNetBarManager1.Bars("barTaskList")
' Display our context menu only if user clicks on the bar caption or tab strip control
If Not barTask.GrabHandleRect.Contains(barTask.PointToClient(Control.MousePosition)) AndAlso Not barTask.DockTabControl Is Nothing AndAlso Not barTask.DockTabControl.Bounds.Contains(barTask.PointToClient(Control.MousePosition)) Then
e.Cancel = True
Exit Sub
End If
item.SubItems.Clear()
Dim contextItem As ButtonItem
Dim dockItem As BaseItem
For Each dockItem In barTask.Items
contextItem = New ButtonItem(dockItem.Name, dockItem.Text)
contextItem.GlobalItem = False
AddHandler contextItem.Click, AddressOf DockContextClick
item.SubItems.Add(contextItem)
contextItem.Checked = dockItem.Visible
Next
contextItem = New ButtonItem("bc_tabnavigation", "Tab Navigation")
contextItem.Checked = barTask.TabNavigation
contextItem.BeginGroup = True
AddHandler contextItem.Click, AddressOf DockContextClick
item.SubItems.Add(contextItem)
End If
End Sub
Private Sub DockContextClick(ByVal sender As Object, ByVal e As EventArgs)
Dim item As ButtonItem = CType(sender, ButtonItem)
If item Is Nothing Then Exit Sub
Dim barTask As Bar = dotNetBarManager1.Bars("barTaskList")
If item.Name = "bc_tabnavigation" Then
barTask.TabNavigation = Not item.Checked
barTask.DockTabControl.Refresh()
Exit Sub
End If
If barTask.Items.Contains(item.Name) Then
barTask.Items(item.Name).Visible = Not item.Checked
barTask.RecalcLayout()
End If
End Sub
Private Function TabItemFromPoint(ByVal pClient As Point) As TabItem
TabItemFromPoint = Nothing
If Not tabStrip1.ClientRectangle.Contains(pClient) Then Exit Function
Dim tab As TabItem
For Each tab In tabStrip1.Tabs
If tab.Visible And tab.DisplayRectangle.Contains(pClient) Then
TabItemFromPoint = tab
Exit Function
End If
Next
End Function
Private Sub ChangeDotNetBarStyle(ByVal style As eDotNetBarStyle)
CType(dotNetBarManager1.GetItem("bStyle2000"), ButtonItem).Checked = (style = eDotNetBarStyle.Office2000)
CType(dotNetBarManager1.GetItem("bStyle2003"), ButtonItem).Checked = (style = eDotNetBarStyle.Office2003)
CType(dotNetBarManager1.GetItem("bStyleXP"), ButtonItem).Checked = (style = eDotNetBarStyle.OfficeXP)
dotNetBarManager1.Style = style
If style = eDotNetBarStyle.Office2003 Or style = eDotNetBarStyle.OfficeXP Then
If dotNetBarManager1.IsThemeActive Then
Dim item As BaseItem = dotNetBarManager1.GetItem("bThemes")
item.Visible = True
CType(item.ContainerControl, Bar).RecalcLayout()
End If
ElseIf dotNetBarManager1.IsThemeActive Then
dotNetBarManager1.GetItem("bThemes").Visible = False
End If
If style = eDotNetBarStyle.Office2003 Then
tabStrip1.Style = eTabStripStyle.OneNote
dotNetBarManager1.Bars("barTaskPane").BackColor = Color.Empty
CType(dotNetBarManager1.GetItem("cTaskShowatstartup"), ControlContainerItem).Control.BackColor = dotNetBarManager1.Bars(0).ColorScheme.BarBackground2
Else
tabStrip1.Style = eTabStripStyle.Flat
dotNetBarManager1.Bars("barTaskPane").BackColor = Color.FromArgb(245, 245, 245)
CType(dotNetBarManager1.GetItem("cTaskShowatstartup"), ControlContainerItem).Control.BackColor = Color.FromArgb(245, 245, 245)
End If
End Sub
Private Sub timerInfoBallon_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timerInfoBallon.Tick
timerInfoBallon.Enabled = False
m_InfoBalloon = New Balloon()
m_InfoBalloon.CaptionImage = New Bitmap(GetType(frmMain), "Info.png")
m_InfoBalloon.CaptionText = "New DotNetBar Feature Alert..."
m_InfoBalloon.Text = "DotNetBar now includes Balloon control to help you convey your information effectively to the end-user.\nCheck out Find command implementation in this sample for an example of highly customized Balloon control."
m_InfoBalloon.AutoResize()
Dim item As BaseItem = dotNetBarManager1.Bars("edit").Items("bFind")
m_InfoBalloon.AutoCloseTimeOut = 10
m_InfoBalloon.Owner = Me
m_InfoBalloon.Show(item, False)
End Sub
Private Sub frmMain_Move(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Move
CloseInfoBalloon()
CloseSearch()
End Sub
Private Sub CloseInfoBalloon()
If Not m_InfoBalloon Is Nothing Then
m_InfoBalloon.Close()
m_InfoBalloon.Dispose()
m_InfoBalloon = Nothing
End If
End Sub
Private Sub CloseSearch()
If (Not m_Search Is Nothing) Then
m_Search.Close()
m_Search.Dispose()
m_Search = Nothing
End If
End Sub
Public Sub SearchActiveDocument(ByVal text As String)
Dim activedocument As frmDocument = CType(Me.ActiveMdiChild, frmDocument)
If Not activedocument Is Nothing Then
activedocument.ExecuteCommand("bFind", text)
End If
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -