【问题标题】:Check if form is Opened Winform / Powershell检查表单是否已打开 Winform / Powershell
【发布时间】:2016-09-09 09:02:52
【问题描述】:

我正在寻找如何检查是否使用 Powershell 打开了 winform 表单,例如 this response for VB.net。我正在使用两个运行空间,当我的表单打开时,我需要启动第二个。

我的第一个运行空间用于 GUI。 UI创建完成后,我打开了它

$CommonHashTable.MainForm.ShowDialog()

然后,我正在尝试测试是否从 PowerShell 主线程打开此表单(来自 VB.net 的片段):

If Application.OpenForms().OfType(Of $CommonHashTable.MainForm).Any Then
 ... startsecondrunspace

【问题讨论】:

  • 您的问题/问题到底是什么?您是否正在为将最后一个 sn-p If Application.OpenForms().OfType ...“翻译”为 PoSh 而苦恼?
  • 是的,我正在搜索如何在 Powershell 中转换此示例

标签: winforms powershell runspace


【解决方案1】:

测试表单是否打开的更好方法可能是

if ($CommonHashTable.MainForm.IsHandleCreated) {
    startsecondrunspace
}

Application.OpenForms() 将是应用程序类而不是表单类的方法。我不确定是否有 Application 类的实例甚至可以使用该方法。如果有,我想它应该是这样的:

If ($ApplicationObject.OpenForms().OfType(Of $CommonHashTable.MainForm).Any) {
    startsecondrunspace
}

【讨论】:

    【解决方案2】:

    非常感谢,我已经创建了这个功能:

    do {
        RecordToLog -Message "Waiting..."
        start-sleep -m 100
    } until ($CommonHashTable.MainForm.IsHandleCreated)
    startsecondrunspace
    

    它正在工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-06
      • 1970-01-01
      相关资源
      最近更新 更多