VB第三方控件实现XP资源管理器垂直栏
作者:转载自:更新时间:2010/11/6

ctlExplorerBar控件一个能实现类似视窗系统 XP资源管理器中右侧垂直栏的控件,他不仅能创建不同的菜单组、在菜单组下添加项目,还能为每一个项目编写感应事件,同时他更是能实现图片的预览,简直和资源管理器的垂直栏相同!在许多软件界面中,他都能发挥非常好的作用。


  应用实例

  想让你的程式更加吸引眼球吗?想在你的程式中打造像视窗系统 XP资源管理器左侧那样的垂直栏吗?只要在你的程式中加上ctlExplorerBar控件,通过几段简单的代码,就能轻松实现这个似乎复杂的界面效果,完全使你抛弃了繁杂的代码!这个控件不仅容易使用,而且他实现的界面效果非常出色,完全和视窗系统 XP中相同(如图1)。 下面我们就结合一个实例来说明使用方法,相信他的简单易用和出色效果会让你动心!


  要了解该控件强大便捷的功能,下面我们就通过一个实例来讲解。

  第一步:首先启动Visual Basic 6.0,新建一个窗口。
  
  第二步:加载ctlExplorerBar控件。

  ①在控件工具栏中单击右键,选择“部件”,在弹出的窗口中点击“浏览”,找到ctlExplorerBar控件,载入他,命名为“XPmenu”;把他放到Form1窗体中任意位置即可。其他属性保持默认即可。

  第三步:加载其他控件,完成界面的设置。

  ①添加四个Image控件,分别命名imgDesktop、imgShare、imgComputer和imgNetwork,用来加载如图1所示的“桌面其他”分栏下四个项前的小图标。为这四个Image控件分别载入适当的小图标(如图2)。


  ②再添加一个Image控件,载入一副图片,用来演示怎么实现图像预览的功能。

  这个演示程式在界面和属性设置上都非常的简单,只要把控件放在界面上任意位置即可,不必设置属性。ctlExplorerBar的位置我们能在程式运行时进行调整。上面说到的图片我们使用了Image控件来加载,当然你喜欢的话也能用Picture控件或是ImageList控件来加载,他们实现的效果是相同的。如果用Picture控件,别忘了把其Autosize属性设置为True。

  到这里就完成了这个演示程式的界面设置,接着进行代码的编写。

  第三步:编写代码,实现界面演示。

  ①编写Form1的Load事件,使程式启动时调整ctlExplorerBar的位置,并且载入相应的分栏和项目等。代码如下:

Private Sub Form_Load()

  XPmenu.Top = 0
  XPmenu.Left = 0
  XPmenu.Width = Me.Width

  XPmenu.AddNormalItem "文件和目录任务", False
   XPmenu.AddSubItem 1, "重命名这个文件", imgDesktop.Picture
   ’……
   ’依照上面的格式,能在该分栏下添加更多的项
  XPmenu.AddNormalItem "其他位置"
   XPmenu.AddSubItem 2, "桌面", imgDesktop.Picture
   XPmenu.AddSubItem 2, "共享文件", imgShare.Picture
   XPmenu.AddSubItem 2, "我的计算机", imgComputer.Picture
   XPmenu.AddSubItem 2, "网上邻居", imgNetwork.Picture
  XPmenu.AddDetailItem "周详信息", "MyPicture1.jpg", "JPEG 图像" & vbCrLf & "尺寸: 100 x 100" & vbCrLf & "大小: 12.5 kB" & vbCrLf & "修改时间: 2005-09-10 14:46", imgCan.Picture

End Sub

  目前你马上就能按下F5预览一下效果了,是不是非常容易?别心急,我们再来分析下上面的代码,更好的掌控其的使用方法。

  分析上面的代码中,非常容易能知道要添加普通分栏的话,只要使用控件的AddNormalItem方法,后面跟上分栏的标题即可。该方法的第二个参数默认值为True,如果设置为False,那么这个分栏显示时是收起的,在上面的图1中能看到效果。

  有了分栏后我们能在其下添加项,通过AddSubItem方法即可。在第一个参数中,输入其所属分栏的序号,第二个和第三个参数分别是标题和图标。

  要实现带有图片预览功能的分栏,能AddDetailItem方法,其参数格式是:(分栏标题,图片信息说明,图片源)。需要注意的是,这种的分栏不能添加下属项。

  ②添加窗体改动大小的事件,实现控件同步改动。

Private Sub Form_Resize()
 XPmenu.Height = Me.ScaleHeight
End Sub

  当窗体的大小发生改动时候,同时也自动改动ctlExplorerBar的大小。通常只是改动ctlExplorerBar显示的高度,而宽度是不改动的,就像XP资源管理器中相同。

  第四步:编写代码,实现ctlExplorerBar的事件相应。

  ①编写ctlExplorerBar的分栏的打开、收起事件,代码如下:

Private Sub XPmenu_Collapse(ByVal Index As Integer)
 Me.Caption = "收起 " & Index
End Sub

Private Sub XPmenu_Expand(ByVal Index As Integer)
 Me.Caption = "展开 " & Index
End Sub

  从上面的代码中我们能看到,ctlExplorerBar提供了两个点击的事件,在这里的示例中我们把事件的相应放映在窗体标题栏中,当点击分栏时候,窗体标题栏就会显示收起或展开哪一个分栏。

  ②添加点击分栏中项目的事件。

Private Sub XPmenu_SubItemClick(ByVal Index As Integer, ByVal SubItemIndex As Integer)
 Me.Caption = "单击 " & Index & " 在 " & SubItemIndex & " (" & XPmenu.SubItem(Index, SubItemIndex) & ")"
 Me.Icon = XPmenu.SubItemIcon(Index, SubItemIndex)
End Sub

  当用户点击分栏中的某个项目时,窗体的标题栏显示项目的Index及其所在分栏。上面的代码告诉你怎样使用项目的点击响应,对于你的实际应用是非常有用的。

  到这里,这个演示程式就完成了,按下F5,你就能看到如图1相同的效果了。

  另外,ctlExplorerBar还支持标题分栏标题图片和背景,同样只要用两个Image控件载入两幅图片,这里我们命名为imgImages和imgBack,然后添加分栏时候使用如下代码:

XPmenu.AddNormalItem "分栏示例", True, imgImages.Picture, imgBack.Picture

  运行程式后我们能看到实际的效果,多了标题图片和背景(如图3),是不是更漂亮呢?再试一试用AddSpecialItem方法来添加分栏,会有不相同的效果哦:-)


  有了ctlExplorerBar控件,我们能非常方便地做出漂亮美观的界面,能应用在信息显示、导航等应用中,相信能为你的程式添加更多的方便和亮点!

关于我们--广告服务--免责声明--本站帮助-友情链接--版权声明--联系我们     黑ICP备07002182号