在Powershell中将鼠标滚轮悬停在文本框上时使用鼠标滚轮滚动

时间:2015-03-12 22:44:55

标签: winforms powershell

我试图搜索这个没有任何运气。 好奇如果可以在鼠标上使用滚轮,同时将鼠标悬停在GUI中的文本框上,而不是在文本框具有焦点时。我正在使用WinForms,也许它可以在WPF中使用?

以下是我的文本框的当前代码:

$textboxResults = New-Object System.Windows.Forms.TextBox
$textboxResults.Size = New-Object Drawing.Size @(300,378)#585,378
$textboxResults.Location = New-Object Drawing.Size @(30,165)#64,143
$textboxResults.Multiline = $true
$textboxResults.TabStop = $false
$textboxResults.ReadOnly = $true
$textboxResults.ScrollBars = "Both"

1 个答案:

答案 0 :(得分:1)

在原始问题中,询问是否可以在不给予文本框焦点的情况下完成所需的行为。我无法做到这一点但是在评论中OP询问是否有办法

  

...在文本框中向上和向下滚动而不单击...只是   将鼠标悬停在......上方

我将假设您不关心文本框是否具有焦点,但您不想点击以提供焦点。有了这个假设,这是我的解决方案:

首先,我们需要为有问题的文本框(或框)创建一个自定义鼠标悬停事件,以便为框提供焦点:

function textBoxMouseHover(){
     $this.focus()
}

请注意,使用$ this来引用发送对象是特定于版本的。我不认为它会在powershell v2之前发挥作用。

接下来,我们需要将此事件添加到文本框中:

$myTextBox.add_mousehover({textBoxMouseHover})

那就是它。将鼠标悬停在附加了此事件的文本框上会使框焦点,您可以立即使用鼠标滚轮滚动。您可以将此事件附加到任意数量的文本框中。至于这样做没有重点,我担心我不够熟练。