所属类别:.NET
文章作者:佚名
特别推荐:免费发布信息 承包关键词~~抢爆了!HOT!
前言: 大家也许开发了很多windows界面的解决方案,对于菜单的使用可以说是滚瓜烂熟,当然,如何实现windows窗口上的左右键功能也是不在话下。但是如何在web窗口实现菜单呢? 很多人说。用javascript或者是vbscript来实现。完全正确。一般说来是在前台用脚本语言来写。现在也有基于不是用脚本语言的控件的方式来实现的方式。用控件来实现的方法大家可以参考我写的《基于asp.net的webmenu的数据操作》一文,用控件很容易的。 我说的是老生常谈的问题,如果高手路过,就请你给予指正,还望不要给太多的砖头。正文: 实现左右键的弹出,以及选择左右键的不同菜单,点击菜单后可以有不同的处理结果,例如弹出有模式和无模式对话框等。 如下,一一介绍:(1):在控件的Click事件和dblClick事件中弹出菜单。 前提条件:控件支持单击和双击事件。(不支持单击和双击的控件恐怕不多吧。嘿嘿) 在控件的Click事件和dblClick事件里面添加自己的菜单函数。这个函数一般是在屏幕上画一个表格。达到弹出菜单的作用。 如下为我的画表格的原型函数:function showdiv(div,XPos,YPos)其中,Div为菜单的类型。比如类型为“变电站”或者“线路”,二者弹出的菜单的内容是不同的。通过这来实现在同一个控件上弹出多个菜单的作用。其中,XPos,YPos的作用为在什么地方弹出菜单,一般说来在鼠标指针的偏下一点和偏右一点为益。题外:怎么得到XPos,YPos,可以通过取得屏幕坐标来获取。此函数由JavaScript实现。假设为“线路”,那么我们看到的为上文的图示,怎么才实现画框的呢?我的实现方法示在本函数里面调用添加菜单函数。本函数实际上是在数组里面添加值,将每个菜单的项目添加到数组中,在下面的menustyle函数中将数组的值取出来。本函数的原型如下:addMenuItem(text, url, img)其中,text为菜单上显示的内容其中,Url为点击改菜单后链接到什么地方的地址。Image是可选项目。表示是图形时,菜单上显示图形。如下为本函数:function addMenuItem(text, url, img){if(img) menuItems[menuItemNum] = new Array(text, url, img);elseif(text) menuItems[menuItemNum] = new Array(text, url);else menuItems[menuItemNum] = new Array(); menuItemNum++;} 同时还可增加菜单的风格以及菜单的点击和mousemove效果,函数为:menuStyle(),无参数。最后,要显示菜单,显示菜单函数为:showMenu(),无参数。这样就实现了菜单的弹出。如下为完整的实例代码:sub GNV_click(ByVal Button, ByVal Key, ByVal WindowCoord, ByVal WorldCoord){select case buttoncase 1 '左键 set m_oCurrentCoordinate = WindowCoord ‘表示鼠标位置,其他的不同控件要通过不同的方法来获取这值。 call showdiv("线路",m_oCurrentCoordinate.x ,m_oCurrentCoordinate.y + 15)}以上代码由vbscript实现如下由javascript实现function showdiv(div,XPos,YPos){ //重定义数组menuItemNum = 0;menuItems = Array();menuXPos = XPos;menuYPos = YPos;switch(div){case "菜单类型"://重定义高度和宽度menuWidth = 143;//menu width 每个汉字宽度24menuHeight = 158; //menu heightaddMenuItem();break;case "另外一个菜单类型": //另外一种情况。略default:break;}menuStyle(); //菜单风格showMenu(); //显示菜单}menuStyle(); //函数略,在下面的选择菜单和点击菜单中使用。function showMenu(){menuPopup.show(menuXPos, menuYPos, menuWidth, menuHeight, document.body); return false;} (关闭本页
相关信息· 过程塑造之一致性的思考
· VC 操作 SQL Server 主从表
· IBM等三巨头联手开发Informix数据库
· 增强的 JavaScript 的 trim 函数的代码
27050
97493
