首页 > 解决方案 > 用时间值填充组合框

问题描述

我想用时间值填充我的组合框,例如 (08:00, 08:10, 08:20 直到 09:50) step=10 分钟,但结果就像 (8:00, 8:10, 8:20, 8: 30, 9:-20,9:-10, 9:00, 9:10, 9:20)。我的代码没有显示像 8:40、8:50 这样的值,他还显示像 9:-20、9:-10 这样的负值。那么请问我该如何解决这个问题?

Heure_rdv.Items.Clear()
    Dim nbr_minute2 As String
    For i = 480 To 590 Step 10
        Dim nbr_heure As Integer = cint(i / 60)
        Dim nbr_minute As Integer = (i - (nbr_heure * 60))
        nbr_minute2 = CStr(nbr_minute) + "0"
        If ((i - (nbr_heure * 60)) = 0) Then

            Heure_rdv.Items.Add(CStr(nbr_heure) + ":" + nbr_minute2)
        Else

            Heure_rdv.Items.Add(CStr(nbr_heure) + ":" + CStr(nbr_minute))

        End If




    Next

标签: vb.net

解决方案


这可以使用 linq 用更少的代码行来完成

Dim steps = Enumerable.Range(0,6)
Dim items as List(Of String) = new List(Of String)()
items.AddRange(steps.Select(Function(x) "08:" & (x * 10).ToString("D2")))
items.AddRange(steps.Select(Function(x) "09:" & (x * 10).ToString("D2")))
Heure_rdv.DataSource = items

首先,我们创建一个从 0 到 5(6 个元素)的整数列表,然后使用这些元素创建所需的字符串,将整数列表的每个元素乘以 10,并将结果转换为两位数的字符串。我们在 8 小时内执行一次,在 9 小时内执行一次。最后我们可以将组合数据源设置为字符串的结果列表。


推荐阅读