Winforms 阻止使用$form.Close()关闭表单返回;取消“;

Winforms 阻止使用$form.Close()关闭表单返回;取消“;,winforms,powershell,ps2exe-gui,Winforms,Powershell,Ps2exe Gui,在我的PowerShell脚本中,我显示一个表单,并使用$form.Close()命令关闭它。它可以很好地关闭,但是当它这样做时,它会返回单词Cancel(如果我通过按右上角的红色-x手动关闭表单,它也会这样做) 当我在控制台中运行脚本时,这是正常的,但现在我使用PS2EXE-GUI在$Form.Close()运行脚本时,作为GUI可执行文件运行脚本。此时会出现一个弹出消息,其中只有Cancel一词,用户必须单击“确定”才能删除该词。请问有没有办法悄悄地关闭表单 我通常会: [void]$For

在我的PowerShell脚本中,我显示一个表单,并使用
$form.Close()命令关闭它。它可以很好地关闭,但是当它这样做时,它会返回单词Cancel(如果我通过按右上角的红色-x手动关闭表单,它也会这样做)

当我在控制台中运行脚本时,这是正常的,但现在我使用PS2EXE-GUI
$Form.Close()
运行脚本时,作为GUI可执行文件运行脚本。此时会出现一个弹出消息,其中只有Cancel一词,用户必须单击“确定”才能删除该词。请问有没有办法悄悄地关闭表单

我通常会:

[void]$Form.Close()
但你也可以这样做:

$Form.Close() | Out-Null

我找到了另一种生成不返回DialogResult的限时表单的方法。我已经用更新的代码更新了我的页面。

我今天遇到了这个问题,我在
ShowDialog
方法之后使用
Out-Null
cmdlet解决了这个问题:

$Form.ShowDialog() | Out-Null

我不在powershell中工作,但我假设您需要将DialogResult设置为ok。类似于:$form.DialogResult=[System.Windows.Forms.DialogResult]::OKHi Troy,感谢您的回复。你的答案看起来很有希望,但不幸的是,它似乎对我不起作用,结果仍然是“取消”。查看DialogResult枚举上的MSDN页面,它建议$Form.DialogResult=[System.Windows.Forms.DialogResult]::没有一个应该工作(我不想要任何输出),但它不工作-我还尝试了其他选项,如Yes、No OK等,仍然只返回“Cancel”。如果有空格,我可以在下面粘贴我的表单代码。我添加了$form.DialogResult=[System.Windows.Forms.DialogResult]::在我定义表单的部分没有-这是正确的位置吗?嗨,谢谢你的回复。我已经试过了,但不幸的是没有效果。脚本像以前一样运行,当表单关闭时返回“Cancel”@RichieW您能提供脚本吗?如果脚本太长,则返回脚本的主要部分吗?我已将代码粘贴到此处:我尝试了代码,两种方法都使关闭在我的计算机上保持沉默:)。我已将控制台的屏幕截图添加到上面的URL中。当我在ISE(或标准控制台)中运行确切的代码时,它会打开表单,关闭并返回“Cancel”。我用的是8.1版的PS4,请问你的环境是什么?