我正在使用ctype从字符串转换为文本框。这些文本框存在于表单上。转换后,我得到数据并显示在文本框中。我第一次打开表格一切顺利。在退出并重新运行表单后,ctype会抛出一个错误“NullReferenceException”。在调试时,我发现一个ctype没有任何返回。 这是为什么发生?如下Ctype转换抛出一个错误vb.net
代码:
Private Sub CompanyId_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CompanyId.SelectedIndexChanged, FundType.SelectedIndexChanged, FundGroup.SelectedIndexChanged, Currency.SelectedIndexChanged, Frequency.SelectedIndexChanged, MngmtFees.SelectedIndexChanged
If INLOAD = True Then Exit Sub
Dim cmb As ComboBox
cmb = DirectCast(sender, ComboBox)
Dim TXTNAME As String
TXTNAME = cmb.Name & "_Name"
Dim NEWTEXT As TextBox = CType(Me.Controls(TXTNAME), TextBox)
*****If NEWTEXT Is Nothing Then MsgBox("hOW TO???")*****
If cmb.Name = "CompanyId" Then NEWTEXT.Text = dc.Tables("Company").Rows(cmb.FindStringExact(cmb.Text)).Item(1).ToString
If InStr(cmb.Name, "Fees") > 0 Then NEWTEXT.Text = dc.Tables("Fees").Rows(cmb.FindStringExact(cmb.Text)).Item(1).ToString
If NEWTEXT.Text = "" Then NEWTEXT.Text = dc.Tables(cmb.Name).Rows(cmb.FindStringExact(cmb.Text)).Item(1).ToString()
谢谢菲尔。我遇到的问题是,尽管我在窗体上有文本框,但它仍然会抛出null。我想知道为什么?如果发生这种情况,我们应该怎么做? – Nelsons 2013-04-28 16:18:53
是CType还是DirectCast引发的异常? – 2013-04-28 16:20:02
在尝试转换之前,您能否检查您是否在TXTNAME中有正确的值? – 2013-04-28 16:21:12