如何判断Out-GridView中点击的是[OK]还是[CANCEL]按钮?
实现方法
完全可以实现,核心是通过捕获Out-GridView -PassThru的返回值来区分用户操作:
- 点击OK按钮时,
Out-GridView会返回选中的对象(没选任何项的话返回空数组@()) - 点击CANCEL按钮时,
Out-GridView会返回$null
基于这个逻辑,你可以把原代码修改为:
# 先捕获Out-GridView的选择结果 $selectedItems = $DataResults | Out-GridView -Title $Title -PassThru # 根据返回值判断执行对应操作 if ($null -ne $selectedItems) { # 用户点了OK,执行你的目标操作(比如原逻辑的复制到剪贴板) $selectedItems | clip Write-Host "选中内容已复制到剪贴板" } else { # 用户点了CANCEL,执行取消后的特定操作 Write-Host "操作已取消" # 这里替换成你需要的取消操作代码 }
如果需要区分「点了OK但没选任何项」的场景,可以再加一层判断:
$selectedItems = $DataResults | Out-GridView -Title $Title -PassThru if ($null -ne $selectedItems) { if ($selectedItems.Count -eq 0) { Write-Host "点击了OK但未选择任何内容" # 这里添加对应操作 } else { $selectedItems | clip Write-Host "选中内容已复制到剪贴板" } } else { Write-Host "操作已取消" # 这里添加取消操作 }
内容的提问来源于stack exchange,提问作者Mike Q
相关产品推荐
相关产品推荐

