Friend Sub MasKit(ByVal cols As DataColumnCollection) >> For Each Ctrl In Me.Controls >> If (TypeOf Ctrl Is IControlMaskit) Then >> CType(Ctrl, IControlMaskit).MaskIt(cols) >> End If >> Next >> End Sub
Friend Sub MaskIt(ByVal cols As DataColumnCollection) Implements IControlMaskit.MaskIt >> If Me.Mask <> "" Then >> Exit Sub >> End If >> >> Dim B As Binding = Me.DataBindings.Item(0) >> >> Dim O As Object = B.DataSource >> If Not (TypeOf O Is DataTable) Then >> O = CType(O, DataView).Table >> End If >> >> Dim c As DataColumn = CType(O, DataTable).Columns(B.BindingMemberInfo.BindingField) >> >> Select Case c.DataType >> Case GetType(System.String) >> ' Possible error since MaxLength can be negative..... >> Me.Mask = ">" & New String("A", c.MaxLength) >> Case GetType(System.DateTime) >> Me.Mask = ">##/AAA/##" >> End Select >> End SubIf not then at least it's a bit shorter (s)
>>> Private Sub frmXXX_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load >>> Me.MasKit(Me.XXXDataset.XXX.Columns) >>> End Sub >>>>>>
>>> Friend Sub MasKit(ByVal cols As DataColumnCollection) >>> Dim ctrl2 As IControlMaskit = Nothing >>> For Each Ctrl As Control In Me.Controls >>> Dim lApplicable As Boolean = True >>> Try >>> ctrl2 = Ctrl >>> Catch >>> lApplicable = False >>> End Try >>> If lApplicable Then >>> ctrl2.MaskIt(cols) >>> End If >>> Next >>> End Sub >>>>>>
>>> Friend Sub MaskIt(ByVal cols As DataColumnCollection) Implements IControlMaskit.MaskIt >>> If Me.Mask <> "" Then >>> Exit Sub >>> End If >>> >>> Dim B As Binding = Me.DataBindings.Item(0) >>> Dim t As DataTable = CType(B.DataSource, DataTable) >>> Dim c As DataColumn = Nothing >>> >>> If t Is Nothing Then >>> Dim t1 As DataView = B.DataSource >>> c = t1.Columns(B.BindingMemberInfo.BindingField) >>> Else >>> c = t.Columns(Me.DataBindings.Item(0).BindingMemberInfo.BindingField) >>> End If >>> >>> ' Dim o As DataColumn = cols(Me.DataBindings.Item(0).BindingMemberInfo.BindingField) >>> Dim cT As String = c.DataType.ToString >>> If cT = "System.String" Then >>> Me.Mask = ">" & New String("A", c.MaxLength) >>> Exit Sub >>> End If >>> If cT = "System.DateTime" Then >>> Me.Mask = ">##/AAA/##" >>> Exit Sub >>> End If >>> MsgBox(Me.Name & " cannot be masked yet (" & cT & ")") >>> End Sub >>>>>>