Winforms powershell多个winform焦点

Winforms powershell多个winform焦点,winforms,powershell,focus,Winforms,Powershell,Focus,我在powershell winforms gui应用程序中有多个表单 主窗体具有始终与其用户相关的信息,尽管还有其他窗体有时会显示相关信息,因此并不总是可见。 主窗体将显示在任务栏中,但其他子窗体不会显示。 当我点击任务栏上的主窗体时,我希望找到一种方法让其他窗体也显示出来,目前它们仍停留在其他窗口后面的位置 下面的代码将假定为每个表单设置/触发了其他属性,如位置和激活。$frmFUD是主表单,带有激活frmSD表单的按钮,不会显示在任务栏中 $appContext = New-Object

我在powershell winforms gui应用程序中有多个表单 主窗体具有始终与其用户相关的信息,尽管还有其他窗体有时会显示相关信息,因此并不总是可见。 主窗体将显示在任务栏中,但其他子窗体不会显示。 当我点击任务栏上的主窗体时,我希望找到一种方法让其他窗体也显示出来,目前它们仍停留在其他窗口后面的位置

下面的代码将假定为每个表单设置/触发了其他属性,如位置和激活。$frmFUD是主表单,带有激活frmSD表单的按钮,不会显示在任务栏中

$appContext = New-Object System.Windows.Forms.ApplicationContext
$frmFUD = New-Object System.Windows.Forms.Form
$frmSD = New-Object system.Windows.Forms.Form
我希望上面的代码将指向我没有考虑过的事件处理程序。 试着像

$frmFUD.Add_Activated({
    $frmSD.activate()
})
把第二种形式带上来,但是我不能让主要形式保持专注

编辑: 我试过:

$frmFUD.Add_activated({
    $frmSD.BringToFront()
})

这会阻止主窗口再次获得焦点,我怀疑我应该使用某种if语句或不同的事件处理程序。

为什么不使用BringToFront()?我以下面的形式给出了$frmFUD.Add_activated({$frmSD.BringToFront()})这会导致次窗体与主窗体一起出现,但是主窗体无法恢复焦点,我不得不强制关闭程序。也许我使用了错误的事件处理程序?我不敢相信我错过了那个方法。谢谢:我将showintaskbar用于主窗口,但我不希望它用于作为主应用程序一部分的每个窗口。谢谢。为什么不直接使用BringToFront()?我以$frmFUD.Add_activated({$frmSD.BringToFront()})的形式给出了一个快照。这会导致次窗体与主窗体一起出现,但主窗体无法恢复焦点,我必须强制关闭程序。也许我使用了错误的事件处理程序?我不敢相信我错过了那个方法。谢谢:我将showintaskbar用于主窗口,但我不希望它用于作为主应用程序一部分的每个窗口。谢谢你。