Powershell 使用 ErrorProvider 值进行最终表单验证

Powershell use ErrorProvider value for final form validation

使用 Powershell 我有一个 Windows 表单,动态生成几个文本框。我在每个文本框上使用验证,然后在验证失败时使用 ErrorProvider 发出警报。

显示错误“!”时效果很好通知。有没有办法检查还剩多少错误?

我的伪代码会说:

  1. 在'OK'点击
  2. 遍历每个文本框
  3. 验证每个文本框
  4. 失败则报错/通过则清除错误
  5. Return
  6. 如果没有更多错误,请关闭表单

或者我是否需要维护一个单独的逻辑来查看错误何时得到纠正? (下面的ErrorProvider检查只是一个占位符,我不知道该放什么!)

$ButtonOK.Add_Click({

    $objectList | where {$_ -is [System.Windows.Forms.TextBox] } | foreach-object {

    Validate-Input $_

    }

    if ($ErrorProvider -eq $null) { #This is where I'm stuck
        $Form.Close()
    }

})

所以从响应 here 来看,没有内置的方法来参考剩余的错误数量。采纳该线程的建议并将其移植到 Powershell 我实现了以下内容:

  1. 定义一个散列table来存储每个对象的错误状态
  2. 设置或清除错误时使用以下命令:

    设置错误: $errTable.set_item("$($curTB.name)","1")

    清除错误: $errTable.remove("$($curTB.name)")

  3. 在'add_click'部分使用以下代码:

    如果($errTable.count -le "0") { $form.close() }

看起来很好用而且很漂亮shorthand。