如果组合框选中的项为空,如何为其分配空字符串? vb.net

时间:2011-12-09 04:57:42

标签: vb.net visual-studio

我有一个名为ReplacementTo

的属性

我根据组合框中的selecteditem设置了一个值,如下所示:

classEquipmentItem.ReplacementTo = cmbReplcmnt.SelectedItem.ToString

现在我不能使用cmbReplcmnt.Text,因为我实际需要的是那个SelectedItem的值

问题是,如果用户将组合框保留为空白,则会抛出空异常。 我决定使用IIf函数:

classEquipmentItem.ReplacementTo = IIf(IsNothing(cmbReplcmnt.SelectedItem.ToString), classEquipmentItem.ReplacementTo = "", cmbReplcmnt.SelectedItem.ToString)

不幸的是我仍然收到错误

我尝试使用Try-Catch并且它有效,但我不想依赖Try-Catch,所以我想知道还有另一种方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用SelectedValue代替SelectedItem属性。

IF IsNothing(cmbReplcmnt.SelectedItem) Then
    classEquipmentItem.ReplacementTo=String.Empty
Else
     classEquipmentItem.ReplacementTo=cmbReplcmnt.SelectedItem.ToString
    'OR
    'classEquipmentItem.ReplacementTo=cmbReplcmnt.SelectedValue.ToString
End If

或者,您可以使用IF或IIF

classEquipmentItem.ReplacementTo=IF(IsNothing(cmbReplcmnt.SelectedItem),
                     String.Empty,cmbReplcmnt.SelectedValue.ToString())

答案 1 :(得分:0)

您的问题是IsNothing(cmbReplcmnt.SelectedItem.ToString)

.ToStringSelectedItem的情况下无法评估Nothing,因此IsNothing函数失败

您的固定代码应如下所示:

classEquipmentItem.ReplacementTo = If(IsNothing(cmbReplcmnt.SelectedItem),  "", cmbReplcmnt.SelectedItem.ToString)

虽然比这更容易:

classEquipmentItem.ReplacementTo = CStr(cmbReplcmnt.SelectedItem)