首页 > 解决方案 > 将文件拖动到 Add_DragEnter 事件的文本框时禁用“拒绝访问”图标

问题描述

我有一些代码允许我将文件资源管理器中的文件拖到表单上的文本框中。代码工作正常。但是,即使文件可以毫无问题地拖到那里,文本框上也会出现“禁止访问”图标。有什么方法可以阻止图标出现吗?

为澄清起见,“禁止访问”图标是一个带有从左上角到右下角的对角线的圆圈。(从 10 点到 4 点,对于那些记得时钟是圆的并且有指针的人)

编辑:添加了澄清代码。

文本框代码:

$tbxPath = New-Object System.Windows.Forms.TextBox
$tbxPath.Location = '10,30'
$tbxPath.Size = '370,20'
$tbxPath.AllowDrop = $true
$tbxPath.Add_DragOver({$_.Effect = [System.Windows.Forms.DragDropEffects]::Copy})
$tbxPath.Add_DragEnter({ GetFirstFile($_)})

与获取文件路径相关的代码(不确定它是否与问题有任何联系,但无论如何我都会包含它。对于它的价值,我可以使用 Add_DragOver 或 Add_DragEnter 来调用我的 GetFirstFile 函数。)

function GetFirstFile($Object){

    $tbxPath.Clear()

    foreach ($File in $Object.Data.GetFileDropList()){

    $tbxPath.Tag = Split-Path $File -Parent

    $tbxPath.Text = Split-Path  $File -Leaf

    $lblInstructions.Text = 'Click the open button'

    $lblInstructions.ForeColor = 'Black'

    $cbOpen.Focus()

    break

  }

}

标签: powershell

解决方案


将此添加到文本框的定义中:

$textBox.AllowDrop = $true
$textBox.Add_DragOver({$_.Effect = [System.Windows.Forms.DragDropEffects]::Copy})

在此处输入图像描述


推荐阅读