我正在处理一个座位预订表格,该表格要求用户输入全名(文本框)和选择的座位(组合框),然后按下按钮以确认预订。如果未输入名称,则会出现一个消息框,要求他们输入名称。如果选择的座位已经在显示到目前为止所有预订的列表框中,则出现一个msgbox来选择另一个座位,因为它已经被预订。组合框中的座位选项名为A1,A2等。
运行代码时,名称检查成功。但是,即使选择的座位已经在列表框中,也不会显示选择另一个座位的提示。我在做什么错了?
昏暗的买家(0)作为一个人
buyers(0).firstname = firstnamebox.Text
buyers(0).surname = lastnamebox.Text
buyers(0).seatchoice = seatlist.SelectedItem
If firstnamebox.Text.Trim.Length = 0 Then
MsgBox("please include a name")
ElseIf lastnamebox.Text.Trim.Length = 0 Then
MsgBox("please include full name")
ElseIf bookingdetails.Items.Contains(seatlist.SelectedItem) Then
MsgBox("This seat is already taken please pick another")
Else
bookingdetails.Items.Add(buyers(0).getfullname & " , " & buyers(0).seatchoice)
End If
如果bookingdetails列表框已经包含组合框中的选定项目,则我希望弹出一个msgbox框,提示“此座位已被占用,请再选择一个”。但这似乎只是无视...
答案 0 :(得分:0)
我怀疑您的程序可能存在一些拼写/大小写问题。 Contains
方法区分大小写,并且至少应转换源字符串和目标字符串ToUpper
,并可能进行修剪以取得良好效果。不过,最终,我认为您应该给最终用户带来很多荣誉,不要犯错。
这是一个例子
Dim LstBxItms() As String = ListBox1.Items.Cast(Of Object).Select(Function(obj) ListBox1.GetItemText(obj).ToUpper.Trim).ToArray
If LstBxItms.Contains(TextBox1.Text.ToUpper.Trim) Then
MsgBox("Found match")
End If