我有一个包含5个值的ComboBox。空行,“信用”,“借记”,“信用结算”和“借方结算”。我正在尝试对它执行错误验证。如果用户在组合框中键入任何内容,或者如果选择了空字符串,我想触发错误。这就是我现在所拥有的,但它不起作用。有什么想法吗?
If cboTypeRes.Text.Trim = "" or cboTypeRes.Text.Trim <> "Debit" Or cboTypeRes.Text.Trim <> "Credit" Or cboTypeRes.Text.Trim = "Debit Settlement" Or cboTypeRes.Text.Trim = "Credit Settlement" Then
答案 0 :(得分:2)
检查所选项目是否包含在Items集合
中if cboTypesRes.SelectedItem Is Nothing Then
Console.WriteLine("Error")
Else
Dim curText = cboTypesRes.SelectedItem.ToString().Trim()
if curText.Length = 0 OrElse Not cboTypesRes.Items.Contains(curText) Then
Console.WriteLine("Error")
End If
End If
一点点更新:
当用户直接键入单词时,SelectedItem属性可能为Nothing,或者用户可以使用小写首字母键入单词。
如果您发现这些方案可以接受,那么您可以尝试使用此更改
Dim curText = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(cboTypeRes.Text)
if curText.Length = 0 OrElse Not cbo.Items.Contains(curText) Then
Console.WriteLine("Error")
End If
答案 1 :(得分:1)
你可能意味着
If cboTypeRes.Text.Trim <> "Debit" AndAlso cboTypeRes.Text.Trim <> "Credit" AndAlso cboTypeRes.Text.Trim <> "Debit Settlement" AndAlso cboTypeRes.Text.Trim <> "Credit Settlement" Then
'...
End If
答案 2 :(得分:0)
试试这个
cboTypeRes.SelectedText.Trim() ...
但最好使用cboTypeRes.SelectedValue
答案 3 :(得分:0)
虽然有更简单的方法可以对组合框进行数据验证,但是你的工作应该是有效的,只是你的最后2个有=
而不是<>
。
您的陈述应为:
If cboTypeRes.Text.Trim = "" or cboTypeRes.Text.Trim <> "Debit" Or cboTypeRes.Text.Trim <> "Credit" Or cboTypeRes.Text.Trim <> "Debit Settlement" Or cboTypeRes.Text.Trim <> "Credit Settlement" Then