显示WinForms对话框,焦点来自powershell脚本

Law*_*ton 6 powershell user-interface focus winforms

我的一个同事刚来找我一个有趣的问题.

他正在从PowerShell脚本中显示WinForms表单,并且在表单成功打开时,它不会得到焦点.而是在显式单击表单之前,PowerShell命令窗口保持焦点.

该脚本使用.\ ScriptName.ps1从PowerShell命令行运行.

我们已经尝试了dlg.ShowDialog()(有和没有传递$ this),dlg.Show(),dlg.Focus()等的各种组合,没有运气.

有人知道如何在显示时给予表格焦点吗?

Law*_*ton 10

这就是我们如何使它工作(第一行是我们缺少的那一行):

$WinForm.Add_Shown({$WinForm.Activate()})
$WinForm.ShowDialog($this) | out-null
Run Code Online (Sandbox Code Playgroud)