Windows应用程序中往往离不开菜单,菜单的应用是十分普遍了,并且菜单的设计是十分简单的,这主要是因为它已经被编制成组件封装在编程语言中可供直接调用。可是Web程序中要直接用到可供调用的菜单是不可能的,它要编写许多复杂的代码。所以许多WEB程序设计者尽可能避免这些麻烦,用其它功能代替。可是,这样会影响WEB风格甚至降低程序的水准。事实,我们同样可以借签Windows的菜单设计经验开发一个完整的Web菜单组件,全面封装后供用户直接调用,其使用的方便完全与Windows的菜单一样。本人在实践中利用VBasic.Net开发出一个仿真WINDOW菜单,实现WEB上的多级菜单组件。该组件具有灵活、动态、多效果功能,用户可以根据需要设计不同风格的菜单,支持图标,选择行、菜单风格的自设置;图标背景, 背景图片,前背景、动态提示、字体、文字、快捷键等设置。现在把它实现的方法及过程阐述如下:
实现原理:利用VBasic.Net强大的组件开发功能,把每个菜单行作为一个结点,设置结点的不同属性。在菜单组件的自定义事件中控制菜单所显示的内容,调用对应功能。
开发步骤如下:
一、启动Visual Studio.NET。在新建项目中选择Visual Basic项目,在模板中选择类库,在名称中输入类库文件名如MenuNode确定,则进入类库开发环境中,把Class1换名为MenuNode.
二、定义公共类MenuNode,该类为供应用软件调用。定义类MenuNode的私有变量_ImageUrl,该变量表示结点图片。定义类MenuNode的属性_ParentID,该属性父结点号,分别编写它们的功能。代码如下:
Public Class MenuNode : Inherits TableCell Private _ImageUrl As String Private _ParentID As Int16 '父结点号 Public Property ParentID() As Int16 Get Return ViewState("_ParentID") End Get Set(ByVal Value As Int16) ViewState("_ParentID") = Value Dim a As TableCell End Set End Property '结点图片 Public Property ImageUrl() As String Get Return ViewState("_ImageUrl") End Get Set(ByVal Value As String) ViewState("_ImageUrl") = Value End Set End Property End Class |