我正在为程序的用户输入构建一些库。如何通过添加参数来清除确切控件类型的ErrorProvider
消息(而不仅仅是文本框(来增强过程?
Friend Sub ClearErpMessages(Container As Control, ErpProvider As ErrorProvider)
For Each tBox As TextBox In Container.Controls.OfType(Of TextBox).Where(Function(fTBox As TextBox) fTBox.Tag IsNot Nothing)
ErpProvider.SetError(tBox, "")
Next
End Sub
您需要使过程成为泛型,并且需要应用泛型约束,因为类型T
必须是Control
:
Friend Sub ClearErpMessages(Of T As Control)(ByVal Container As Control, ByVal ErpProvider As ErrorProvider)
For Each ctl As T In Container.Controls.OfType(Of T).Where(Function(c As T) c.Tag IsNot Nothing)
ErpProvider.SetError(ctl, "")
Next
End Sub
ClearErpMessages(Of TextBox)(Me, error_provider)
ClearErpMessages(Of ComboBox)(Me, error_provider)