Vb.net 如果组合框中的选定项为空,如何为其指定空字符串?运动模拟
我有一个叫做ReplacementTo的属性 我根据组合框中的selecteditem设置一个值,如下所示:Vb.net 如果组合框中的选定项为空,如何为其指定空字符串?运动模拟,vb.net,visual-studio,Vb.net,Visual Studio,我有一个叫做ReplacementTo的属性 我根据组合框中的selecteditem设置一个值,如下所示: classEquipmentItem.ReplacementTo = cmbReplcmnt.SelectedItem.ToString 现在我不能使用cmbReplcmnt.Text,因为我实际需要的是SelectedItem的值 所以问题是,如果用户将组合框保留为空,它将抛出一个null异常。 我决定使用IIf函数,然后: classEquipmentItem.Replacemen
classEquipmentItem.ReplacementTo = cmbReplcmnt.SelectedItem.ToString
现在我不能使用cmbReplcmnt.Text,因为我实际需要的是SelectedItem的值
所以问题是,如果用户将组合框保留为空,它将抛出一个null异常。
我决定使用IIf函数,然后:
classEquipmentItem.ReplacementTo = IIf(IsNothing(cmbReplcmnt.SelectedItem.ToString), classEquipmentItem.ReplacementTo = "", cmbReplcmnt.SelectedItem.ToString)
不幸的是,我仍然得到了错误
我尝试使用Try-Catch来实现它,但我不想依赖Try-Catch,所以我想知道是否有其他方法可以解决这个问题?您可以尝试
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())
您的问题是
IsNothing(cmprepcmnt.SelectedItem.ToString)
如果SelectedItem
为Nothing
,则无法计算.ToString
,因此IsNothing
功能失败
您的固定代码应如下所示:
classEquipmentItem.ReplacementTo = If(IsNothing(cmbReplcmnt.SelectedItem), "", cmbReplcmnt.SelectedItem.ToString)
但比这更容易的是:
classEquipmentItem.ReplacementTo = CStr(cmbReplcmnt.SelectedItem)
我尝试使用IIF(),但仍然得到空错误。如果我使用if(),它需要另一个表达式