1

使用 Powershell,我有一个 Windows 窗体,可以动态生成多个文本框。我对每个文本框使用验证,然后在验证失败时使用 ErrorProvider 发出警报。

这可以很好地显示错误“!” 通知。有没有办法检查剩下多少错误?

我的伪代码会说:

  1. 在“确定”上单击
  2. 循环遍历每个 TextBox
  3. 验证每个文本框
  4. 失败则错误/通过则清除错误
  5. 返回
  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()
    }

})
4

1 回答 1

0

所以从这里的响应来看,没有内置的方法来引用剩余的错误数量。接受该线程的建议并将其移植到 Powershell,我实现了以下内容:

  1. 定义一个哈希表来存储每个对象的错误状态
  2. 设置或清除错误时,请使用以下内容:

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

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

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

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

似乎工作得很好,而且很简写。

于 2015-07-27T10:31:10.610 回答