gpt4 book ai didi

windows - 如何抑制PowerShell .net GUI错误

转载 作者:行者123 更新时间:2023-12-03 07:52:54 26 4
gpt4 key购买 nike

我正在使用Windows Forms编写PowerShell脚本,该脚本创建了一个GUI供用户输入数据,每当用户在字段中输入不正确的信息时,它就会使用状态栏告诉用户他们输入的数据不正确。

我在辅助函数中具有此功能,并且使用if语句确定用户输入的数据是否不正确。如果是这样,脚本应该返回到开头,因为该表单始终处于打开状态,直到用户单击右上角的“X”按钮或单击我创建的“关闭”按钮为止。

不幸的是,当用户输入不正确的信息并单击“提交”按钮时,它会引发错误消息框,指出“应用程序中的组件发生了未处理的异常。如果单击“继续”,则应用程序将忽略此错误并尝试接着说。”

我尝试对指定的消息和SilentlyContinue使用Break,Throw和Write-Error。所有方法都抛出相同的错误框。有什么办法可以抑制此错误框?

编辑:这是我的脚本中的错误处理:

if(-Not ($myVar.Text.ToString()) {
$sBar.Text = "Invalid input. Please try again."
Write-Error "Invalid input error" -ErrorAction Stop #Can be replaced with Continue or SilentlyContinue, gives same error. Throw, Exit, and Break also give the same error of unhandled exception.
}
$myVar是Windows窗体中的文本字段,而 $sBar是状态栏。

错误 pop 窗口如下所示:

Error Popup Window

最佳答案

因此,您的PowerShell错误已正确返回。捕获该错误的Windows窗体并产生允许用户继续前进的错误处理框。看看这个article by Adam Bertram。他讨论了如何在Powershell Windows窗体中正确显示错误。

“您必须弄清楚如何向脚本用户指示发生了错误。”

$statusBar = New-Object -TypeName System.Windows.Forms.StatusBar
$statusBar.Text = ‘Message status bar’
$Form.Controls.Add($statusBar)
$Form.ShowDialog()

在按钮上单击或提交内容时,请执行以下操作:
$button.add_Click({
try
{
<strong>Get-Content</strong> -Path C:\File.txt
}
catch
{
$statusBar.Text = $_.Exception.Message
}
})

关于windows - 如何抑制PowerShell .net GUI错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54245404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com