点击鼠标右键,弹出一个可以在多项中选择其中一项的快捷菜单,如何编程? 在窗口内,点击鼠标右键,弹出一个可以在多项中选择其中一项的快捷菜单,如何编程?何处有例子?谢谢!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- saved from url=(0046)http://fason.nease.net/zhuanti/menu/right1.htm --><HTML><HEAD><TITLE>自定义鼠标右键弹出式菜单</TITLE><META http-equiv=Content-Type content="text/html; charset=gb2312"><STYLE type=text/css>.div1 {BORDER-RIGHT: windowframe 1px solid; BORDER-TOP: buttonface 1px solid; BORDER-LEFT: buttonface 1px solid; BORDER-BOTTOM: windowframe 1px solid}.div2 {BORDER-RIGHT: buttonshadow 1px solid; BORDER-TOP: window 1px solid; BORDER-LEFT: window 1px solid; BORDER-BOTTOM: buttonshadow 1px solid}.MouseOver {FONT-SIZE: 12px; CURSOR: hand; COLOR: highlighttext; BACKGROUND-COLOR: highlight}.MouseOut {FONT-SIZE: 12px; CURSOR: default; COLOR: buttontext; BACKGROUND-COLOR: buttonface}</STYLE><SCRIPT language=javascript>function PopupMouseRightButtonUpMenu(){ if(MouseMenu.style.visibility=='visible') MouseMenu.style.visibility='hidden'; if (event.srcElement.tagName=='A' || event.srcElement.tagName=='TEXTAREA' || event.srcElement.tagName=='INPUT' || document.selection.type!='None') return true; else { if (event.clientX+150 > document.body.clientWidth) MouseMenu.style.left=event.clientX+document.body.scrollLeft-150; else MouseMenu.style.left=event.clientX+document.body.scrollLeft; if (event.clientY+DivH > document.body.clientHeight) MouseMenu.style.top=event.clientY+document.body.scrollTop-DivH; else MouseMenu.style.top=event.clientY+document.body.scrollTop; MouseMenu.style.visibility='visible'; }return false;}function DrawMouseRightButtonUpMenu(){DivH=2;//oSelection = document.selection;var HrStr='<tr><td align=\"center\" valign=\"middle\" height=\"2\"><TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"128\" height=\"2\"><tr><td height=\"1\" bgcolor=\"buttonshadow\"><\/td><\/tr><tr><td height=\"1\" bgcolor=\"buttonhighlight\"><\/td><\/tr><\/TABLE><\/td><\/tr>';var MenuItemStr1='<tr><td align=\"center\" valign=\"middle\" height=\"20\"><TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"132\"><tr><td valign=\"middle\" height=\"16\" class=\"MouseOut\" onMouseOver=\"this.className=\'MouseOver\'\" onMouseOut=\"this.className=\'MouseOut\'\" onclick=\"'var MenuItemStr2="<\/td><\/tr><\/TABLE><\/td><\/tr>";var historyMenu=['window.history.back()\">后退','window.history.forward()\">前进'];var SysMenu=['\">查找 <INPUT TYPE=\"text\" Size=\"10\" onkeypress=\"if (event.keyCode == 13) {MouseMenu.style.visibility=\'hidden\';var temp = this.value; this.value = \'\';return findInPage(temp)}\";\'>', 'document.execCommand(\'SelectAll\')\">全选', 'MouseMenu.style.visibility=\'hidden\';document.execCommand(\'SaveAs\',\'true\')\">另存为 ...', 'location.replace(\'view-source:\'+location.href)\">查看源文件', 'MouseMenu.style.visibility=\'hidden\';window.print()\">打印', 'window.location.reload()\">刷新'];var MenuStr='';for(i=0;i<historyMenu.length;i++) { MenuStr+=MenuItemStr1+historyMenu[i]+MenuItemStr2; DivH+=20; }MenuStr+=HrStr;for(i=0;i<arguments.length;i++) { MenuStr+=MenuItemStr1+arguments[i]+MenuItemStr2; DivH+=20; }if(arguments.length>0) { MenuStr+=HrStr; DivH+=2; }for(i=0;i<SysMenu.length;i++) { MenuStr+=MenuItemStr1+SysMenu[i]+MenuItemStr2; DivH+=20; }var aboutMenu=['MouseMenu.style.visibility=\'hidden\';alert(\'http:\/\/www.playyuer.com\\nmailto:[email protected]\')">关于 ...']MenuStr+=HrStr;for(i=0;i<aboutMenu.length;i++) { MenuStr+=MenuItemStr1+aboutMenu[i]+MenuItemStr2; DivH+=20; }var MenuTop = '<DIV id=\"MouseMenu\" class=\"div1\" style=\"position:absolute; left:0px; top:0px; width=150;height='+DivH+'; z-index:1; visibility:hidden;\">\n' + '<TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"div2\">\n' + '<tr>\n' + '<td bgcolor=\"' + MenuBarColor+ '\" width=\"50\" valign=\"bottom\" align=\"center\" bgcolor=\"buttonface\">\n' + '<\/td>\n'+ '<td bgcolor=\"buttonface\">\n'+ '<TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\">';var MenuBottom = '<\/TABLE><\/td><\/tr><\/TABLE><\/DIV>';document.write(MenuTop+MenuStr+MenuBottom);//prompt('aa',MenuTop+MenuStr+MenuBottom)document.body.oncontextmenu=new Function('return PopupMouseRightButtonUpMenu();');document.body.onclick=new Function('if(event.srcElement.tagName !=\'INPUT\') MouseMenu.style.visibility=\'hidden\'');document.body.onscroll=new Function('MouseMenu.style.visibility=\'hidden\';');document.body.onselectstart=new Function('MouseMenu.style.visibility=\'hidden\';');window.onresizestart=new Function('MouseMenu.style.visibility=\'hidden\';');}var NS4 = (document.layers);var IE4 = (document.all);var win = window;var n = 0;function findInPage(str) { var txt, i, found; if (str == '') return false; if (NS4) { if (!win.find(str)) while(win.find(str, false, true)) n++; else n++; if (n == 0) alert('文档搜索完毕。'); } if (IE4) { txt = win.document.body.createTextRange(); for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) { txt.moveStart('character', 1); txt.moveEnd('textedit'); } if (found) { txt.moveStart('character', -1); txt.findText(str); txt.select(); txt.scrollIntoView(); n++; } else { if (n > 0) { n = 0; findInPage(str); } else alert('文档搜索完毕。'); } } return false;}</SCRIPT><META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD><BODY>自定义鼠标右键弹出式菜单<SCRIPT language=JavaScript><!--var MenuBarColor ='#6600FF';DrawMouseRightButtonUpMenu();//--></SCRIPT> </BODY></HTML> 不知你的具体要求,参考一下(c#,winform):private StringCollection GetContextMent (string roleid){ StringCollection outmenu = new StringCollection(); outmenu.Add ("Add"); outmenu.Add ("Edit"); outmenu.Add ("Delete"); outmenu.Add ("Permission Set"); return outmenu.Count == 0 ? null : outmenu;}private void DoMenuAction (object sender, EventArgs e) { // This is called from the context menu activated by the TreeView's left-click MenuItem mi = (MenuItem) sender; //do handle by tvwDealer.SelectedNode, mi.Text DoActionByMenu(this.lsvRoleList .FocusedItem .Tag .ToString () ,mi.Text);}//弹出菜单项事件处理public void DoActionByMenu (string roleid, string action){ switch (action) { case "Add": this.openEditRole ("add"); break; case "Edit": this.openEditRole ("edit"); break; case "Delete": DeleteRole(); break; case "Permission Set": this.ChangeRoleEditState ("perm"); this.InitTvwModule (roleid); this.editingRole = roleid; //this.tvwModule.Focus (); break; }}//鼠标释放事件private void lsvRoleList_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e){ if (e.Button == MouseButtons.Right && this.lsvRoleList.SelectedItems .Count != 0) { StringCollection actions = GetContextMent (this.lsvRoleList .FocusedItem .Tag .ToString ()); if (actions != null) { System.Windows.Forms.ContextMenu cm = new ContextMenu(); foreach (string action in actions) { cm.MenuItems.Add (action, new EventHandler (DoMenuAction)); } cm.Show (lsvRoleList, new Point (e.X, e.Y)); } }} 楼上lovvver(春晖)文中的lsvRoleList是什么?不清楚。 lsvRoleList,看上去好像是ListView控件. 对,是listview控件,上面的代码我是在listview里做的。 有没有不要dll文件就可以在Winform里添加音乐的方法 求一个方法越简单越好马上结贴。。。 自定义DatetimePicker的问题 关于textbox 页面滚动的问题 格式11/Jul/2009:00:10:49 转换 datetime MDI窗口的问题 请问netserialcomm类能读写usb设备吗? ******哪位高手能够给出用vb实现磁盘扫描和磁盘碎片整理的思路*****? 怎样自动获取本机的Port号(端口号) gridview导出excle 关于DataGrid插入新行的疑问 怎样把JAVA转为C#!!!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0046)http://fason.nease.net/zhuanti/menu/right1.htm -->
<HTML><HEAD><TITLE>自定义鼠标右键弹出式菜单</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>.div1 {
BORDER-RIGHT: windowframe 1px solid; BORDER-TOP: buttonface 1px solid; BORDER-LEFT: buttonface 1px solid; BORDER-BOTTOM: windowframe 1px solid
}
.div2 {
BORDER-RIGHT: buttonshadow 1px solid; BORDER-TOP: window 1px solid; BORDER-LEFT: window 1px solid; BORDER-BOTTOM: buttonshadow 1px solid
}
.MouseOver {
FONT-SIZE: 12px; CURSOR: hand; COLOR: highlighttext; BACKGROUND-COLOR: highlight
}
.MouseOut {
FONT-SIZE: 12px; CURSOR: default; COLOR: buttontext; BACKGROUND-COLOR: buttonface
}
</STYLE><SCRIPT language=javascript>
function PopupMouseRightButtonUpMenu()
{
if(MouseMenu.style.visibility=='visible') MouseMenu.style.visibility='hidden';
if (event.srcElement.tagName=='A' || event.srcElement.tagName=='TEXTAREA' || event.srcElement.tagName=='INPUT' || document.selection.type!='None')
return true;
else
{
if (event.clientX+150 > document.body.clientWidth) MouseMenu.style.left=event.clientX+document.body.scrollLeft-150;
else MouseMenu.style.left=event.clientX+document.body.scrollLeft;
if (event.clientY+DivH > document.body.clientHeight) MouseMenu.style.top=event.clientY+document.body.scrollTop-DivH;
else MouseMenu.style.top=event.clientY+document.body.scrollTop;
MouseMenu.style.visibility='visible';
}
return false;
}
function DrawMouseRightButtonUpMenu(){
DivH=2;
//oSelection = document.selection;
var HrStr='<tr><td align=\"center\" valign=\"middle\" height=\"2\"><TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"128\" height=\"2\"><tr><td height=\"1\" bgcolor=\"buttonshadow\"><\/td><\/tr><tr><td height=\"1\" bgcolor=\"buttonhighlight\"><\/td><\/tr><\/TABLE><\/td><\/tr>';
var MenuItemStr1='<tr><td align=\"center\" valign=\"middle\" height=\"20\"><TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"132\"><tr><td valign=\"middle\" height=\"16\" class=\"MouseOut\" onMouseOver=\"this.className=\'MouseOver\'\" onMouseOut=\"this.className=\'MouseOut\'\" onclick=\"'
var MenuItemStr2="<\/td><\/tr><\/TABLE><\/td><\/tr>";
var historyMenu=['window.history.back()\">后退','window.history.forward()\">前进'];
var SysMenu=['\">查找 <INPUT TYPE=\"text\" Size=\"10\" onkeypress=\"if (event.keyCode == 13) {MouseMenu.style.visibility=\'hidden\';var temp = this.value; this.value = \'\';return findInPage(temp)}\";\'>',
'document.execCommand(\'SelectAll\')\">全选',
'MouseMenu.style.visibility=\'hidden\';document.execCommand(\'SaveAs\',\'true\')\">另存为 ...',
'location.replace(\'view-source:\'+location.href)\">查看源文件',
'MouseMenu.style.visibility=\'hidden\';window.print()\">打印',
'window.location.reload()\">刷新'];var MenuStr='';
for(i=0;i<historyMenu.length;i++)
{
MenuStr+=MenuItemStr1+historyMenu[i]+MenuItemStr2;
DivH+=20;
}
MenuStr+=HrStr;
for(i=0;i<arguments.length;i++)
{
MenuStr+=MenuItemStr1+arguments[i]+MenuItemStr2;
DivH+=20;
}if(arguments.length>0)
{
MenuStr+=HrStr;
DivH+=2;
}for(i=0;i<SysMenu.length;i++)
{
MenuStr+=MenuItemStr1+SysMenu[i]+MenuItemStr2;
DivH+=20;
}var aboutMenu=['MouseMenu.style.visibility=\'hidden\';alert(\'http:\/\/www.playyuer.com\\nmailto:[email protected]\')">关于 ...']
MenuStr+=HrStr;
for(i=0;i<aboutMenu.length;i++)
{
MenuStr+=MenuItemStr1+aboutMenu[i]+MenuItemStr2;
DivH+=20;
}var MenuTop = '<DIV id=\"MouseMenu\" class=\"div1\" style=\"position:absolute; left:0px; top:0px; width=150;height='+DivH+'; z-index:1; visibility:hidden;\">\n' +
'<TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"div2\">\n' +
'<tr>\n' +
'<td bgcolor=\"' + MenuBarColor+ '\" width=\"50\" valign=\"bottom\" align=\"center\" bgcolor=\"buttonface\">\n' +
'<\/td>\n'+
'<td bgcolor=\"buttonface\">\n'+
'<TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\">';
var MenuBottom = '<\/TABLE><\/td><\/tr><\/TABLE><\/DIV>';
document.write(MenuTop+MenuStr+MenuBottom);
//prompt('aa',MenuTop+MenuStr+MenuBottom)
document.body.oncontextmenu=new Function('return PopupMouseRightButtonUpMenu();');
document.body.onclick=new Function('if(event.srcElement.tagName !=\'INPUT\') MouseMenu.style.visibility=\'hidden\'');
document.body.onscroll=new Function('MouseMenu.style.visibility=\'hidden\';');
document.body.onselectstart=new Function('MouseMenu.style.visibility=\'hidden\';');
window.onresizestart=new Function('MouseMenu.style.visibility=\'hidden\';');
}
var NS4 = (document.layers);
var IE4 = (document.all);
var win = window;
var n = 0;
function findInPage(str) {
var txt, i, found;
if (str == '')
return false;
if (NS4) {
if (!win.find(str))
while(win.find(str, false, true))
n++;
else
n++;
if (n == 0)
alert('文档搜索完毕。');
}
if (IE4) {
txt = win.document.body.createTextRange();
for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
txt.moveStart('character', 1);
txt.moveEnd('textedit');
}
if (found) {
txt.moveStart('character', -1);
txt.findText(str);
txt.select();
txt.scrollIntoView();
n++;
}
else {
if (n > 0) {
n = 0;
findInPage(str);
}
else
alert('文档搜索完毕。');
}
}
return false;
}
</SCRIPT><META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY>自定义鼠标右键弹出式菜单
<SCRIPT language=JavaScript>
<!--
var MenuBarColor ='#6600FF';
DrawMouseRightButtonUpMenu();
//-->
</SCRIPT>
</BODY></HTML>
private StringCollection GetContextMent (string roleid)
{
StringCollection outmenu = new StringCollection();
outmenu.Add ("Add");
outmenu.Add ("Edit");
outmenu.Add ("Delete");
outmenu.Add ("Permission Set");
return outmenu.Count == 0 ? null : outmenu;
}
private void DoMenuAction (object sender, EventArgs e)
{
// This is called from the context menu activated by the TreeView's left-click
MenuItem mi = (MenuItem) sender;
//do handle by tvwDealer.SelectedNode, mi.Text
DoActionByMenu(this.lsvRoleList .FocusedItem .Tag .ToString () ,mi.Text);
}
//弹出菜单项事件处理
public void DoActionByMenu (string roleid, string action)
{
switch (action)
{
case "Add":
this.openEditRole ("add");
break;
case "Edit":
this.openEditRole ("edit");
break;
case "Delete":
DeleteRole();
break;
case "Permission Set":
this.ChangeRoleEditState ("perm");
this.InitTvwModule (roleid);
this.editingRole = roleid;
//this.tvwModule.Focus ();
break;
}
}
//鼠标释放事件
private void lsvRoleList_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (e.Button == MouseButtons.Right && this.lsvRoleList.SelectedItems .Count != 0)
{
StringCollection actions = GetContextMent (this.lsvRoleList .FocusedItem .Tag .ToString ());
if (actions != null)
{
System.Windows.Forms.ContextMenu cm = new ContextMenu();
foreach (string action in actions)
{
cm.MenuItems.Add (action, new EventHandler (DoMenuAction));
}
cm.Show (lsvRoleList, new Point (e.X, e.Y));
}
}
}