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

vfwfrxfs  于 2022-11-16  发布在  Shell
关注(0)|答案(2)|浏览(87)

我的一个同事刚刚来找我,提出了一个有趣的问题。
他正在显示来自PowerShell脚本的WinForms表单,当表单成功打开时,它没有获得焦点。相反,PowerShell命令窗口将保留焦点,直到显式单击该表单。
该脚本正在使用.\ScriptName.ps1从PowerShell命令行运行。
我们已经尝试了dlg.ShowDialog()(有或没有传递$this)、dlg.Show()、dlg.Focus()等的各种组合,但都没有成功。
有人知道如何在窗体显示时给予它焦点吗?

rqmkfv5c

rqmkfv5c1#

这是我们如何让它工作的(第一行是我们遗漏的):

$WinForm.Add_Shown({$WinForm.Activate()})
$WinForm.ShowDialog($this) | out-null
yrdbyhpb

yrdbyhpb2#

我在Powershell中使用的是C#,Redwood的答案中的Add_Shown位可以解释为添加Shown的事件处理程序,或者简单地覆盖OnShown

protected override void OnShown(EventArgs e)
    {
        base.OnShown(e);
        this.Activate();
    }

相关问题