表事件PrepareEdit的代码设置为:
If e.Row.IsNull("审核人") = False Then '如果审批人列不为空
e.Cancel = True '则禁止编辑
End If
这样经过审批的行,将不能编辑。
前面所有有关编辑的权限设置,都是针对数据表的。如果采用录入窗口编辑数据,那么这些权限设置是无效的,我们需要另外的方法。
在窗口的全局事件的Enter事件中设置代码:
Dim ctl As WinForm.Control = e.Sender
Dim tex1 As WinForm.TextBox
tex1 = e.Form.Controls("TextBox33")
Select Case ctl.BindingField
Case "立项.服务分包成本"
If tex1.Text = Nothing Then '如果审批人列为空
ctl.ReadOnly = BooleanEnum.False '允许编辑
Else
ctl.ReadOnly = BooleanEnum.True '禁止编辑
End If
End Select
这样只能限制录入窗口某个文本框禁止编辑,但是我的窗口文本框很多我不能逐个去设,希望可以直接整个窗口都禁止编辑,能否做到?