-1

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

4 回答 4

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
于 2013-06-10T13:13:35.047 回答
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
于 2013-06-10T13:08:05.333 回答
0

尝试这个

cboTypeRes.SelectedText.Trim() ... 

但最好这样做cboTypeRes.SelectedValue

于 2013-06-10T13:06:16.893 回答
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
于 2013-06-10T13:06:37.113 回答