2013-05-05 213 views
0

我很新的编码和visual basic。今天我被分配去完成一个我遇到麻烦的程序。我需要开发一个应用程序,允许用户输入约会和需要竞争的时间,但是我需要实现一个错误检查以确保没有两次是相同的,这就是我遇到问题的地方。我不确定如何将datetimepicker.valuelistbox文字进行比较。我将string“”转换为Date类型是无效错误。任何帮助深表感谢!比较datetimepicker与字符串

Public Class Form1 

    Function TimeTaken() As Boolean 
     Dim app As String = TextBox1.Text 
     Dim timeofapp As String = DateTimePicker1.Value.ToShortTimeString 


     If CDate(ListBox2.Text) = CDate(DateTimePicker1.Value) Then 
      MsgBox("Two appointments are scheduled within the same time frame.",    MsgBoxStyle.Exclamation) 
      TimeTaken = True 
     Else 
      TimeTaken = False 
      ListBox1.Items.Add(app) 
      ListBox2.Items.Add(timeofapp) 
      TextBox1.Text = "" 
     End If 

    End Function 


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     TimeTaken() 
    End Sub 
End Class 

回答

0

“我不确定我怎能datetimepicker.value比较列表框中的文本”

您需要遍历存储在ListBox.Items的所有值()属性:

Function TimeTaken() As Boolean 
    Dim AlreadyTaken As Boolean = False ' assume not taken until proven otherwise below 

    Dim app As String = TextBox1.Text 
    Dim timeofapp As String = DateTimePicker1.Value.ToShortTimeString 

    For Each time As String In ListBox2.Items 
     If time = timeofapp Then 
      MsgBox("Two appointments are scheduled within the same time frame.", MsgBoxStyle.Exclamation) 
      AlreadyTaken = True 
      Exit For 
     End If 
    Next 

    If Not AlreadyTaken Then 
     ListBox1.Items.Add(app) 
     ListBox2.Items.Add(timeofapp) 
     TextBox1.Text = "" 
    End If 

    Return AlreadyTaken 
End Function 
+0

谢谢,先生! – 2013-05-06 00:39:36

+0

太棒了。如果该代码解决了您的问题,请随时单击复选标记将该答案更改为“已接受”的答案。 – 2013-05-06 02:50:44