3

我正在尝试检查“Listivew.Tag 属性是否为空”。

我曾经对所有场景进行普遍的“什么都没有”检查,作为第一次检查以避免错误

有人可以解释如何在 VB 6 中做到这一点吗?

 If Not .lvwLocation.Tag Is Nothing Then
    'COMPANY
    str = str & IIf(Len(.lvwLocation.Tag) > 0, " and u.location_id in " & .lvwLocation.Tag, "")
End If

给出错误“类型不匹配”

4

2 回答 2

9

NothingObject是变量的有效值,Is是比较对象指针的方法。

但是VB6控件的Tag属性是String,而VB6的String类型不是Object;它是一种原始类型。这意味着不能分配字符串变量Nothing——它最可能的空值是空字符串。(并且不能为 Object 变量分配字符串值。)对于字符串,只需使用与其他原始(数字/布尔/日期)类型相同的相等/不相等/比较运算符:

If .lvwLocation.Tag <> "" Then ...
于 2011-12-26T09:08:00.543 回答
2

在 VB6 中,使用Is Nothing来比较似乎Objects有效,而我尝试过的所有其他数据类型都没有。在 .NetNothing中代表任何数据类型的默认值,并且会像您期望的那样工作。

Dim test as Object

If Not test Is Nothing Then
   /////  
End If

Tag由于VB6 中 th 属性的数据类型似乎是字符串。我会使用类似的东西:

If .lvwLocation.Tag <> "" Then      
    /////
End If
于 2011-12-26T07:29:38.463 回答