【问题标题】:How to add options to mouse-right-click menu in Powershell forms如何在 Powershell 表单中向鼠标右键单击菜单添加选项
【发布时间】:2017-12-04 05:45:06
【问题描述】:

我有一个带有textbox 的基本Powershell 表单。当我右键单击textbox 时,会出现一个标准菜单,其中包含复制、剪切、粘贴等...

我的目标是添加一个“清除日志”选项,以清除当前的textbox 内容。如何将此选项添加到右键菜单中,而不是执行/绘制实际单独的 button

选项将只为这个表单启用,我不是从注册表中寻找一般的鼠标右键单击解决方案

【问题讨论】:

  • 为了能够首先显示 TextBox 的 ContextMenuStrip,您应该将 TextBox 的 ShortcutsEnabled 属性设置为 false,然后将 ContextMenuStrip 分配给其 ContextMenuStrip。

标签: winforms powershell mouseevent mouse right-click


【解决方案1】:

为了能够为TextBox 显示ContextMenuStrip,首先应该将TextBoxShortcutsEnabled 属性设置为false,然后将ContextMenuStrip 分配给它的ContextMenuStrip 属性,如下所示:

$form1= New-Object System.Windows.Forms.Form
$textBox1 = New-Object System.Windows.Forms.TextBox
$contextMenuStrip1 = New-Object System.Windows.Forms.ContextMenuStrip

$contextMenuStrip1.Items.Add("Item 1")
$contextMenuStrip1.Items.Add("Item 2")

$textBox1.ShortcutsEnabled = $false
$textBox1.ContextMenuStrip = $contextMenuStrip1

$form1.Text="Context Menu for TextBox"
$form1.Controls.Add($textBox1)

$form1.ShowDialog()

【讨论】:

  • 谢谢,按预期工作。现在我只是为 Item1/2 做一个事件函数,作为点击,对吧?
  • 顺便说一句,在运行脚本时,由于行$contextMenuStrip1.Items.Add,在 CMD 中我可以看到所有项目参数。你知道如何“静默”它吗?
  • 将其分配给一个变量或使用| Out-Null 来抑制输出。
【解决方案2】:

$contextMenuStrip1.Items.Add的开头添加[void]

像这样:

[void]$contextMenuStrip1.Items.Add($item)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-16
    • 1970-01-01
    • 2011-08-27
    • 2018-07-03
    相关资源
    最近更新 更多