PowerShell Forms不会触发DragDrop

时间:2017-01-30 13:34:29

标签: winforms powershell powershell-v4.0

没有任何迹象表明简单的Windows窗体DragDrop在PowerShell中不起作用,并且有几个资源解释它确实有效,但我无法让它们中的任何一个工作。甚至像这样简单:

Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Application]::EnableVisualStyles()

$form = New-Object System.Windows.Forms.Form
$TBcode = New-Object System.Windows.Forms.TextBox
$form.Controls.Add($TBcode)

$TBcode.Dock = "Fill"
$TBcode.Multiline = $true
$TBCode.ScrollBars = "Vertical"
$TBCode.AllowDrop = $true
$TBcode.Add_DragEnter({ Write-Host "DragEnter"; $_.Effects = "Copy" })
$TBcode.Add_DragDrop({ Write-Host "DragDrop" })
$TBcode.Add_MouseEnter({ Write-Host "Mouse Enter" })

$form.ShowDialog()

MouseEnter事件正常触发,但是当尝试将任何内容拖入TextBox时没有任何反应。

1 个答案:

答案 0 :(得分:0)

我突然意识到并且能够确认这实际上是用户帐户控制。

因为我在Windows 10上我已经让我的PowerShell以管理员身份运行所以我实际上可以做我需要的事情,但是来自用户级资源管理器进程的对象(或其他任何运行的对象)用户)将拒绝与管理员级PowerShell表单进行交互。

以用户身份运行PowerShell允许DragDrop按预期工作,但如果您需要它作为管理员,祝您好运! > _>