Powershell 使用 ErrorProvider 值进行最终表单验证
Powershell use ErrorProvider value for final form validation
使用 Powershell 我有一个 Windows 表单,动态生成几个文本框。我在每个文本框上使用验证,然后在验证失败时使用 ErrorProvider 发出警报。
显示错误“!”时效果很好通知。有没有办法检查还剩多少错误?
我的伪代码会说:
- 在'OK'点击
- 遍历每个文本框
- 验证每个文本框
- 失败则报错/通过则清除错误
- Return
- 如果没有更多错误,请关闭表单
或者我是否需要维护一个单独的逻辑来查看错误何时得到纠正? (下面的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 我实现了以下内容:
- 定义一个散列table来存储每个对象的错误状态
设置或清除错误时使用以下命令:
设置错误:
$errTable.set_item("$($curTB.name)","1")
清除错误:
$errTable.remove("$($curTB.name)")
在'add_click'部分使用以下代码:
如果($errTable.count -le "0") {
$form.close()
}
看起来很好用而且很漂亮shorthand。
使用 Powershell 我有一个 Windows 表单,动态生成几个文本框。我在每个文本框上使用验证,然后在验证失败时使用 ErrorProvider 发出警报。
显示错误“!”时效果很好通知。有没有办法检查还剩多少错误?
我的伪代码会说:
- 在'OK'点击
- 遍历每个文本框
- 验证每个文本框
- 失败则报错/通过则清除错误
- Return
- 如果没有更多错误,请关闭表单
或者我是否需要维护一个单独的逻辑来查看错误何时得到纠正? (下面的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 我实现了以下内容:
- 定义一个散列table来存储每个对象的错误状态
设置或清除错误时使用以下命令:
设置错误: $errTable.set_item("$($curTB.name)","1")
清除错误: $errTable.remove("$($curTB.name)")
在'add_click'部分使用以下代码:
如果($errTable.count -le "0") { $form.close() }
看起来很好用而且很漂亮shorthand。