问题标签 [contextmenustrip]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 有没有办法强制在菜单中始终显示助记符?
我在我的程序中使用了 ContextMenuStrip,显然,除非我按 Alt,否则它不会显示它的快捷键(助记符,那些应该在 & 前面的字母下显示为下划线的快捷键),但是当我按 Alt 时,显示的 ContextMenuStrip 将隐藏因为表单的主菜单将获得焦点。因此,在上下文菜单中,永远不会看到助记符!
有没有办法强制我的程序启用这种行为?我在其他地方读到你可以在系统设置的某个地方更改它,但我需要使用我的软件的人始终看到助记符,而不需要他们全局更改他们的系统才能让我的程序正常工作!
当用户按下 Enter 时,我必须通过 KeyDown 事件处理程序中的代码显示此菜单,因为它是一个用于快速编辑由控件表示的值的弹出窗口。用户单击控件,可以快速更改其内容。当您在 ctrl+space 上弹出一个弹出窗口时,可以将其想象为在 C# 中,提示您可以在该确切位置插入可能的代码片段。因此,将其用作控件的“上下文菜单”属性或使用键盘“显示上下文菜单”按钮不适用。
谢谢!
c# - 取消选择 ContextMenuStrip 上的 ToolStripItem
简单的问题:
我可以.Select
(ToolStripItem
比如,如果我在打开上下文菜单条时想要一个预选选项),但我似乎找不到设置.Selected
为 false 或以某种方式取消选择它的方法!
是否可以?
c# - 如何动态添加 ToolStripMenuItems
仅添加查询中的最后一项。如何添加查询中的所有项
c# - 在 ContextMenuStrip 中复制 ContextMenu 构造函数
根据我的研究和理解,ContextMenuStrip 应该是 ContextMenu 的继承者,并且本着保持我的代码更新和健全的精神,我着手替换一个这样的 ContextMenu 实例。
以前,为了给 MenuItem 一个带有点击处理程序的项目子菜单,我正在做类似的事情:
我不确定我是否遗漏了一些简单的东西,但是如何使用 ContextMenuStrip 实现类似的功能?ToolStripMenuItem 没有重载的构造函数,可让您添加自身的数组以形成子菜单。也没有一种方法可以根据从 ContextMenuStrip 中选择特定项目索引来添加项目,例如:
有一个构造函数可以让您实例化一个带有 ToolStripItem(s) 数组的子菜单,但它是一个抽象类,因此您不能直接调用它。
想法?还是我不是透过树木看到森林。
c# - C# 中 NotifyIcon 的 ContextMenuStrip 的事件处理程序
我想为 a 编写一个点击事件ContextMenuStrip
。我已将此上下文菜单条链接到NotifyIcon
.
我怎样才能做到这一点?这是我使用的代码:
我试过这个
但我收到一个错误说
错误 1 'System.Windows.Forms.ToolStripItemCollection.Add(string, System.Drawing.Image, System.EventHandler)' 的最佳重载方法匹配有一些无效参数
PS:代码正在运行,我有事件处理程序ToolStripItemClickedEventArgs e
应该是EventArgs e
。现在代码工作正常。谢谢你的帮助 :)
c# - 如何扩展现有的 ContextMenuStrip?
我的应用程序的每个工作区控件都有一个共同点ContextMenuStrip
。这ContextMenuStrip
包含 4 个项目(“前移”、“后移”和“删除控件”)。
现在我想为一个控件扩展它。此控件上有一个DataGridView
,我想要一个附加项目来删除选定的DataGridViewRow
.
这是我试过的代码:
foreach
将循环的第一项添加到ctx.Items
调试器后,整个方法将离开整个方法,而第一项在 common 中丢失ContextMenuStrip
。
我该怎么做呢?
c# - ContextMenuStrip 你如何强制更新(大小错误 b/c 我隐藏了一些项目)
我在 ContextMenuStrip 中有 10 个项目。我有一个打开事件处理程序,它决定 10 个项目中的哪一个是可见的。根据应用程序逻辑,我可以通过设置 Visible = false 和 Enabled = false 来隐藏其中的许多;
在显示 6/10 的情况下会发生什么情况。第一次单击该条时,它们将是一个区域 4 菜单项高度的空白区域。如果我右键单击使其第二次出现,它会显示在它应该在的位置。因此,条带基本上具有为 10 条条带计算的位置,而实际上它只是 6 条条带。
如何强制它重新计算?
以下是我尝试过的一些事情:
c# - ToolStripMenuItem_Click(object sender, EventArgs e) - 转换回 DataGridView
我有一个带有DataGridView控件的WINFORM应用程序,连接到ContextMenuStrip控件中。
ContextMenuStrip触发事件实质上在DataGridView和剪贴板之间执行复制/粘贴。
我在我的应用程序中添加了另一个DataGridView并希望在它们之间共享ContextMenuStrip,因为根据我上面的代码,它被硬编码到我的网格myGrid中。
我相信修改我的代码以从发送者投射一个新的DataGridView控件将是一个简单的练习:
但当然,我发现发件人是ToolStripMenuItem。
有没有办法通过sender或EventArgs e引用原始DataViewGrid?
并且,感谢您阅读 :)
c# - 从嵌套 ToolStripMenuItem 检索时 ContextMenuStrip.Owner 属性 null
我有ContextMenuStrip
两个ToolStripItem
s 的设置。第二个ToolStripItem
有两个额外的嵌套ToolStripItem
s。我将其定义为:
ToolStripMenuItem
然后我为我想要响应的三个 s 的点击事件设置了一个事件监听器。以下是方法(我只列出了三种方法中的两种):
这是我遇到的问题:
我的contextJumpTo_Click
方法效果很好。我们一直到我确定DataGridView
点击来自哪里,我可以继续。但是,它contextJumpTo
ToolStripMenuItem
不是ContextMenuStrip
.
但是我的方法contextJumpToHeatmapStart_Click
不起作用。当我到达我确定的那一行时owner.SourceControl
,它SourceControl
是空的,我无法继续。现在我知道这ToolStripMenuItem
是嵌套在 my 中的另一个之下ContextMenuStrip
,但为什么我的SourceControl
属性突然为空ContextMenuStrip
?
如何获得SourceControl
for a 嵌套ToolStripMenuItem
for a ContextMenuStrip
?
c# - 无论如何要获取在 ToolStripMenuItem 点击处理程序中打开 ContextMenuStrip 的 TreeNode 吗?
我有具有不同级别 TreeNodes 的 TreeView
我向所有父 TreeNodes 添加了相同的 ContextMenuStrip,我希望通过打开该 ContextMenuStrip 并按“全部删除”来删除所有子 TreeNodes
而且我不知道如何获取用户单击以打开菜单的 TreeNode 有
什么想法吗?