所以我已经将一个上下文菜单(右键菜单)附加到wpf listview.
不幸的是,当你右键单击它时会显示菜单并选择你结束的任何项目.有没有办法在仍允许上下文菜单的同时关闭此右键单击选择行为?
如何在Windows中的文件夹和文件上右键单击事件添加新项?
我通过向HKEY_CLASSES_ROOT\*添加注册表项,为所有文件添加了自定义右键单击动词.最终结果如下所示
HKEY_CLASSES_ROOT*\壳牌\ TestRightClick\COMMAND
-------默认= c:\ RightClickTest.exe"%1"
问题:当选择多个文件c:\ RightClickTest.exe将被多次调用(所选文件的数量)
我需要的:将多个文件路径传递给一个可执行文件
我想在用户右键单击输入字段时禁用默认的contextMenu,以便我可以显示自定义的contextMenu.一般来说,通过执行以下操作非常容易禁用右键单击菜单:
$([whatever]).bind("click", function(e) { e.preventDefault(); });
Run Code Online (Sandbox Code Playgroud)
事实上,除了FF中的输入字段之外,我可以在几乎所有元素上执行此操作 - 任何人都知道为什么或可能指向某些文档?
以下是我正在使用的相关代码,谢谢大家.
HTML:
<script type="text/javascript">
var r = new RightClickTool();
</script>
<div id="main">
<input type="text" class="listen rightClick" value="0" />
</div>
Run Code Online (Sandbox Code Playgroud)
JS:
function RightClickTool(){
var _this = this;
var _items = ".rightClick";
$(document).ready(function() { _this.init(); });
this.init = function() {
_this.setListeners();
}
this.setListeners = function() {
$(_items).click(function(e) {
var webKit = !$.browser.msie && e.button == 0;
var ie = $.browser.msie && e.button == 1;
if(webKit||ie)
{
// Left mouse...do something()
} else if(e.button …Run Code Online (Sandbox Code Playgroud) 我是一名.Net开发人员,他需要将一个小项目移植到Mac中,所以我对Objective C几乎一无所知.事实上,下面的代码只是抓住了一堆稻草,在黑暗中拍摄.
尝试构建一个状态菜单程序,打开一个或另一个窗口,具体取决于它是左键单击还是右键单击/按住Ctrl键单击.这是我所拥有的,它仅适用于左键单击(显然):
-(void) awakeFromNib{
NSBundle *bundle = [NSbundle mainBundle];
statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength] retain];
[statusImage = [[NSImage alloc] initWithContentsOfFile:[bundle pathForResource:@"icon" ofType:@"png"]];
[statusItem setImage:statusImage];
[statusItem setToolTip:@"Program Name"];
[statusItem setHighlightMode:YES];
[statusItem setAction:@selector(openWin:)];
[statusItem setTarget: self];
}
-(void)openWin:(id)sender{
[self openLeftWindow:sender];
}
-(IBAction)openLeftWindow:(id)sender{
//Code to populate Left Click Window
[leftWindow makeKeyAndorderFront:nil];
}
-(IBAction)openRightWindow:(id)sender{
//Code to populate Right Click Window
[rightWindow makeKeyAndorderFront:nil];
}
Run Code Online (Sandbox Code Playgroud)
在我看来,解决方案将是openWin()函数中的if语句,以确定单击哪个按钮(或者如果按住ctrl)然后运行相应的代码或使菜单知道左右两侧点击.但是当我试图这样做时,这些都没有奏效.
提前致谢.
应该很简单,但我看不到它.
您可以找到右键单击的组件以显示弹出菜单:
PopupMenu1.PopupComponent
Run Code Online (Sandbox Code Playgroud)
但是,如何找到包含TMenuItem的弹出菜单,该菜单依次点击该菜单?
要将问题简化为示例:
我有一系列标签,每个标签都有不同的标题,我有一个弹出菜单,分配给每个标签的PopupMenu属性.
当有人右键单击其中一个标签并打开弹出菜单,然后单击MenuItem1时,我想编码:
procedure TForm1.MenuItem1Click(Sender: TObject);
begin
MsgBox (Format ('The label right-clicked has the caption %', [xxxx.Caption ])) ;
end ;
Run Code Online (Sandbox Code Playgroud)
xxxx应该是什么?
实施答案
感谢两位受访者.我最终得到的是:
procedure TForm1.MenuItem1Click(Sender: TObject);
var
AParentMenu : TMenu ;
AComponent : TComponent ;
ALabel : TLabel ;
begin
AParentMenu := TMenuItem (Sender).GetParentMenu ;
AComponent := TPopupMenu (AParentMenu).PopupComponent ;
ALabel := TLabel (AComponent) ;
MsgBox (Format ('The label right-clicked has the caption %', [ALabel.Caption ])) ;
end ;
Run Code Online (Sandbox Code Playgroud)
它还会询问涉及哪个TMenuItem,因此给了我一段代码,我可以将其放入其他OnClick处理程序中,而不需要修改.
我想以编程方式将上下文菜单添加到我的托盘图标,这样当我右键单击托盘图标时,它应该显示菜单.如何为托盘图标编写右键单击事件处理程序?
我试过以下:
private void Icon_MouseRightClick(object sender, MouseButtonEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left) // shows error ate button
{
return;
}
if (e.Button == System.Windows.Forms.MouseButtons.Right)
{
// code for adding context menu
}
}
Run Code Online (Sandbox Code Playgroud)
声明Eventhandler为,
NotifyIcon.MouseRightClick += new MouseButtonEventHandler(NotifyIcon_MouseRightClick);
Run Code Online (Sandbox Code Playgroud) 我正在Swift中编写一个简单的状态栏应用程序,并尝试使用OS X 10.10中引入的新NSStatusItem API.
我瞄准的界面是在statusItem上单击鼠标左键以打开和关闭核心功能,用鼠标右键单击(或按住Control键单击)选项以显示设置菜单.我不需要自定义视图或弹出窗口来实现此功能.
默认情况下,如果NSMenu被分配给NSStatusItem,它将在左右键单击上显示菜单.我想将行为更改为仅在右键单击时显示菜单,或者作为解决方法,防止左键单击时弹出菜单
以前,似乎要在NSStatusItem上控制鼠标事件,必须使用重写的鼠标事件设置自定义视图(请参阅此相关问题).
在10.10中引入的新NSStatusItem API中,不推荐使用设置自定义视图的方法,并且看起来不鼓励这种行为.根据@Taylor的回答,应该通过statusItemObject.button()返回的NSStatusBarButton对象使用一些不赞成的行为,但是在编写时没有NSStatusBarButton的文档,并且返回的对象是只读的,不能被替换使用带有重写鼠标事件处理程序的自定义按钮.
有没有办法对鼠标事件显示附加到NSStatusItem(或NSStatusBarButton)的NSMenu进行某种程度的控制?
这是一个随机的中文网站 http://www.soap-china.com/index.asp
我注意到右键单击已禁用.我总是关掉JavaScript,所以我开始逐个节点删除,在Firebag中逐行删除css,但是没有找到什么是禁用右键单击.
它是如何工作的?
这不是我第一次看到这个,所以我很好奇这个伎俩.
我认为,如果谷歌驱动器和其他创建文本文件的程序做到了这一点,那么应该有一种方法可以做到同样的事情并添加在终端中打开的功能。
先感谢您!
步骤1:打开运行并访问注册表编辑器

步骤 2:导航到注册表编辑器中的以下目录

Computer\HKEY_CLASSES_ROOT\Directory\Background\shell
Run Code Online (Sandbox Code Playgroud)
第 3 步:创建新密钥

设置快捷方式的名称和图标:

命令:

在目录中创建一个新密钥并将“(默认)”值设置为该命令。
这不是一个问题,而是有关如何将“使用 Visual Studio Code 打开”选项添加到右键菜单的指南。
right-click ×10
c# ×2
contextmenu ×2
nsstatusitem ×2
wpf ×2
cocoa ×1
css ×1
delphi ×1
directory ×1
events ×1
input-field ×1
javascript ×1
jquery ×1
listview ×1
macos ×1
menu ×1
menuitem ×1
nsmenu ×1
osx-yosemite ×1
popupmenu ×1
regedit ×1
registry ×1
shell-verbs ×1
shortcut ×1
swift ×1
terminal ×1
trayicon ×1
webpage ×1