Ciao, premesso che, come già ti hanno consigliato, non è questa la strada giusta da seguire (ti conviene iniziare ad usare un database).
Le ore lavorative (da quanto si vede sono uguali per tutti gli operai che andrai a selezionare) sono le ore complessive occorse per terminare una
commessa? Se la risposta è SI, questo significa che possono essere anche superiori a 23:59, in questo caso la conversione che stai facendo:
Dim T1 as Timespan = Timespan.parse(MaskedTextBox1.Text.Replice_ ("."C,":"C))
ti darà un errore. Per questo motivo ti conviene fare una funzione che converte un orario da stringa a TimeSpan:
codice:
Private Function FormatToTimeSpan(ByVal totOre As String) As TimeSpan
'IO L'HO OMESSO, MA PRIMA DI PROCEDERE BISOGNA FARE IL CONTROLLO CHE totOre SIA UN VALORE CORRETTO...
Dim vettOra() As String = totOre.Split(":"c)
Dim hh As Int32
Dim gg As Int32 = 0
Int32.TryParse(vettOra(0), hh)
If hh > 23 Then
gg = (hh Mod 24)
hh -= (24 * gg)
Else
Return TimeSpan.Parse(totOre)
End If
Return New TimeSpan(gg, hh, Int32.Parse(vettOra(1)), 0)
End Function
e visto che hai soltanto 4 CheckBox, senza fare cicli su cicli, basta fare 4 If...
codice:
Dim ts1 As TimeSpan = FormatToTimeSpan(MaskedTextBox1.Text.Replace("."C,":"C))
Dim ts2 As New TimeSpan(0, 0, 0)
If CheckBox1.Checked = True Then
ts2 = ts2.Add(ts1)
End If
'....stessa if per tutte le CheckBox
alla fine ti troverai ts2 che conterrà giorni, ore e minuti, dai quali ricavi il totale delle ore...(ricorda che i giorni devono essere moltiplicati per 24).