Foxtable(狐表)用户栏目专家坐堂 → 请教ValidateEdit 事件


  共有4579人关注过本帖树形打印复制链接

主题:请教ValidateEdit 事件

帅哥哟,离线,有人找我吗?
hbhb
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5065 积分:13128 威望:0 精华:0 注册:2014/5/15 21:34:00
请教ValidateEdit 事件  发帖心情 Post By:2020/1/7 12:50:00 [只看该作者]

大师:我在表的ValidateEdit事件中写入如下代码,验证输入的内容,如果输入的有重复,禁止退出,同时希望输入的单元格的值恢复到原来的值,为何不行?  红色部分的设置无效,怎么解决?
If e.Row.Index = 1  Then
    Dim lzf As String
    lzf = e.Row(e.Col.Name)
    
    '-------重复值检测---------------------
    Dim count As Integer = 0
    For Each cl As  Col In e.Table.Cols
        If cl.name <> e.Col.Name Then
            If e.Row(cl.Name) = e.Text And e.text <> ""  Then
                count += 1
                Exit For
            End If
        End If
    Next
    If  count >= 1 Then
        MessageBox.Show("标题列不能重复!确认此列标题前,请删除其他列的相同标题","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        e.Text = lzf
        e.cancel = True
    End If
end if


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:113480 积分:577889 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/7 14:16:00 [只看该作者]

        e.Text = lzf
        e.cancel = True
上面2个有冲突,只能保留一个,e.cancel = True会使的单元格处于编辑状态,这时赋值是没有用的

或者改到datacolchanging事件

If Tables(e.DataTable.name).FindRow(e.DataRow) = 1  Then
    
    '-------重复值检测---------------------
    For Each cl As  DataCol In e.DataTable.DataCols
        If cl.name <> e.DataCol.Name Then
            If e.DataRow(cl.Name) = e.NewValue And e.NewValue > ""  Then
                MessageBox.Show("标题列不能重复!确认此列标题前,请删除其他列的相同标题","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                e.cancel = True
                Tables(e.DataTable.name).Select(Tables(e.DataTable.name).RowSel,Tables(e.DataTable.name).ColSel-1)
                Return
            End If
        End If
    Next
End If

 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5065 积分:13128 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2020/1/7 14:35:00 [只看该作者]

谢谢!这种功能,一般用哪一种方式处理(哪个事件)?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:113480 积分:577889 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/7 14:45:00 [只看该作者]

写代码测试,哪个能用就用哪个

 回到顶部