以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]搞不懂为什么载入时提示错误  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=106069)

--  作者:WENFEIZHU
--  发布时间:2017/9/1 14:10:00
--  [求助]搞不懂为什么载入时提示错误
一个窗口中有绑定一个表并有4个panel
我在窗口中代表ID的textbox中设置了一个valuechange,如下。
目的是,当我选择表中不同行时,根据不同的situation,来决定4个panel的颜色。

课时在这个form载入时弹出错误,应该是在载入过程中,某对象来不及载入触发事件导致。

请问如何解决。谢谢!
_______________________________________________
错误所在事件:窗口,submit-1,TextBox1,ValueChanged
详细错误信息:
未将对象引用设置到对象的实例。
_______________________________________________
Dim tb As Table = Tables("Data_Basic")
Dim r As Row = tb.Current
Dim adrs As String = r("AttachedImage")
Dim adrs2 As String = r("AttachedImageAfter")
Dim Fm As winform.Form = Forms("submit-1")
Dim pic As winform.picturebox = fm.controls("PictureBox1")
Dim pic2 As winform.picturebox = fm.controls("PictureBox2")
If adrs = "" Then
pic.ImageFile = projectpath & "\\images\\NULLIMAGE.jpg"
Else
pic.ImageFile = adrs
End If
\'载入图片
If adrs2 = "" Then
pic2.ImageFile = projectpath & "\\images\\NULLIMAGE.jpg"
Else
pic2.ImageFile = adrs2
End If
\'如果为空则退出
If fm.controls("textbox1").text = "" Or fm.controls("textbox25").text = ""
Exit Sub
End If
\'显示状态
Dim s1 As WinForm.Panel = fm.Controls("Panel1")
Dim s2 As WinForm.Panel = fm.Controls("Panel2")
Dim s3 As WinForm.Panel = fm.Controls("Panel3")
Dim s4 As WinForm.Panel = fm.Controls("Panel4")
s1.BackColor = Color.lime
s2.BackColor = Color.lime
s3.BackColor = Color.lime
s4.BackColor = Color.lime
If r("situation") = "提交" Then
s1.BackColor = Color.whitesmoke
s2.BackColor = Color.whitesmoke
s3.BackColor = Color.whitesmoke
s4.BackColor = Color.whitesmoke
Else If r("situation") = "审核" Then
s2.BackColor = Color.whitesmoke
s3.BackColor = Color.whitesmoke
s4.BackColor = Color.whitesmoke
Else If r("situation") = "接手" Then
s2.BackColor = Color.whitesmoke
s3.BackColor = Color.whitesmoke
s4.BackColor = Color.whitesmoke
Else If r("situation") = "返工" Then
s2.BackColor = Color.whitesmoke
s3.BackColor = Color.whitesmoke
s4.BackColor = Color.whitesmoke
Else If r("situation") = "完成" Then
s3.BackColor = Color.whitesmoke
s4.BackColor = Color.whitesmoke
Else If r("situation") = "验收" Then
s4.BackColor = Color.whitesmoke
End If

--  作者:有点甜
--  发布时间:2017/9/1 14:43:00
--  

加上判断

 

Dim r As Row = tb.Current

If r Is Nothing Then Retrun


--  作者:WENFEIZHU
--  发布时间:2017/9/1 15:38:00
--  
知道原因了,一定要写在dim r的下面,否则代码第三行和第四行都会出错。