以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]AfterCheckRow (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=75963) |
-- 作者:huhu -- 发布时间:2015/10/18 21:13:00 -- [求助]AfterCheckRow AfterCheckRow代码如下: If e.Row.Checked Then If (MessageBox.show("订单编号:" & e.Row("订单编号") & "+" & "临时版本编号:" & e.Row("临时版本编号") & "+" & "产品化编号:" & e.Row("产品化编号") & "三者确定要锁定吗?","提醒产线",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes) Then e.Row("绑锁解绑") = "锁定" e.Row("订单log") = "订单编号:" & e.Row("订单编号") & "+" & "临时版本编号:" & e.Row("临时版本编号") & "+" & "产品化编号:" & e.Row("产品化编号") & " " & user.name & " " & Date.now & " " & "已锁定" & vbcrlf & e.Row("订单log") Dim rr As DataRow = DataTables("订单主表").Find("订单编号 = \'" & e.Row("订单编号") & "\'") rr("log") = e.Row("订单log") & vbcrlf & rr("log") e.Row.Locked = True e.Row.Checked = True Else e.Row.Checked = False End If End If 问题,怎么勾线了复选框后,然后点击msgbox的确定按钮后,复选框变为没有勾选状态,这是怎么回事? |
-- 作者:大红袍 -- 发布时间:2015/10/19 9:38:00 -- 代码没问题,至少我这样测试没问题。
If e.Row.Checked Then |
-- 作者:huhu -- 发布时间:2015/10/20 19:55:00 -- BeforeCheckRow代码如下: If e.Row("订单编号") = "" Or e.Row("产品化编号") = "" Then MessageBox.Show("订单编号,临时版本编号,产品化编号三者尚未绑定,故不能锁定","锁定请提示",MessageBoxButtons.OK,MessageBoxIcon.Error) e.Cancel = True End If AfterCheckRow代码如下: If e.Row.Checked Then If (MessageBox.show("订单编号:" & e.Row("订单编号") & "+" & "临时版本编号:" & e.Row("临时版本编号") & "+" & "产品化编号:" & e.Row("产品化编号") & "三者确定要锁定吗?","提醒产线",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes) Then e.Row("绑锁解绑") = "锁定" e.Row("订单log") = "订单编号:" & e.Row("订单编号") & "+" & "临时版本编号:" & e.Row("临时版本编号") & "+" & "产品化编号:" & e.Row("产品化编号") & " " & user.name & " " & Date.now & " " & "已锁定" & vbcrlf & e.Row("订单log") Dim rr As DataRow = DataTables("订单主表").Find("订单编号 = \'" & e.Row("订单编号") & "\'") rr("log") = e.Row("订单log") & vbcrlf & rr("log") e.Row.Locked = True e.Row.Checked = True Else e.Row.Checked = False End If End If 复选框打勾也发现运行错误(未将对象引用设置到对象的实例-------今天就和它干上了) .NET Framework 版本:2.0.50727.8009 Foxtable 版本:2014.11.11.1 错误所在事件:临时版本跟踪表,AfterCheckRow 详细错误信息: 未将对象引用设置到对象的实例。 |
-- 作者:大红袍 -- 发布时间:2015/10/20 19:58:00 -- If rr IsNot Nothing Then rr("log") = e.Row("订单log") & vbcrlf & rr("log") |
-- 作者:huhu -- 发布时间:2015/10/20 20:06:00 -- 哦。 增加判断rr是否存在。确实不报这个错了。 但问题是点击完msgbox的确定后,复选框仍然没有选中。
|
-- 作者:大红袍 -- 发布时间:2015/10/20 20:06:00 -- 做例子上来,2楼代码没问题 |
-- 作者:huhu -- 发布时间:2015/10/20 20:25:00 -- 我自己做例子,发现没有问题,是选中状态。 但是我的工程死活复选框选不中。是不是其他代码干扰的 看来我只能上工程了。不好意思,凑合着看一下。 窗体:产线2 http://pan.baidu.com/s/1qW5TGVM
|
-- 作者:大红袍 -- 发布时间:2015/10/20 20:41:00 -- 应该是触发了DataColChanged事件
If e.Row.Checked Then |
-- 作者:huhu -- 发布时间:2015/10/20 21:08:00 -- 这么改,是不会报错了。 问题1.这段代码怎么会触发datacolchanged事件?哪一列发生变化了? 问题2.勾选完,我的本意是这行锁定了,不能在勾选了。可是发现仍然能取消勾选。 e.Row.Checked = True e.Row.Locked = True |
-- 作者:大红袍 -- 发布时间:2015/10/20 21:13:00 -- 你修改值自然会触发datacolchanged事件啊。
锁定还可以勾选,要限制,在beforeCheckRow事件判断是否锁定了,锁定就e.Cancel = true |