IF / ELSE语句不起作用

时间:2013-06-10 13:03:30

标签: vb.net vb.net-2010

我有一个包含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

4 个答案:

答案 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