菜单->数据表->表属性->事件->DataRowLockedChanging |
static flag As Integer = 0Dim t As Table = Tables(e.DataTable.Name)If e.DataRow.locked Then If flag = 0 Then e.Cancel = True Dim pwd As String If InputPassWord(pwd,"提示","请输入密码:") Then If pwd = "123456" Then flag = 1 End If End If Else If flag = 1 Then e.Cancel = True Else If flag = 2 Then End IfEnd IfIf t.BottomPosition = t.FindRow(e.DataRow) Then If flag = 1 Then flag = 2 For i As Integer = t.TopPosition To t.BottomPosition t.Rows(i).Locked = False Next End If flag = 0End If
上述代码是想 锁定的行在解锁的时候需要输入密码,这样可以减少误操作。代码由lin_hailun提供,在此感谢!
但是代码经过本人测试出现如下问题,烦请各路大神优化一下,有更简短的更好;1、输入错的密码没有任何提示(如果有这样的提示:密码错误,请重试!效果感觉好点)。2、如果选中5行,点击解锁,出现密码框,若此时不想输入密码 就得在密码框上进行5次取消,或5次确定,或5次关闭按钮。但是实际上需要的只是一次取消即可!
[此贴子已经被作者于2013-2-7 17:35:56编辑过]