Foxtable(狐表)用户栏目专家坐堂 → 禁止移动行


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

主题:禁止移动行

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


加好友 发短信
等级:一尾狐 帖子:465 积分:3216 威望:0 精华:0 注册:2017/4/18 1:15:00
禁止移动行  发帖心情 Post By:2017/6/17 0:56:00 [只看该作者]

在修改数据未保存之前怎么代码怎么设置不允许移动到其他行


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


加好友 发短信
等级:超级版主 帖子:107861 积分:548662 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/6/17 9:04:00 [只看该作者]

参考:http://www.foxtable.com/webhelp/scr/0644.htm

If e.OldRange.RowSel <> e.NewRange.RowSel '如果选择的是不同的行
    If e.OldRange.RowSel >= 0 AndAlso e.OldRange.Rowsel < e.Table.Rows.Count Then '而且原来选择的是一个有效的数据行
        Dim r As Row = e.Table.Rows(e.OldRange.Rowsel) '获得原来选择的行
        If r.DataRow.RowState <> DataRowState.Unchanged Then
            e.Cancel = True
            msgbox("请先保存")
        End If
    End If
End If

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


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/6/17 9:15:00 [只看该作者]

禁止移动行的代码是‘’e.Cancel = True‘’吗?

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


加好友 发短信
等级:超级版主 帖子:107861 积分:548662 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/6/17 9:42:00 [只看该作者]

2楼完整代码才是,这是一整个逻辑判断处理的过程。仅仅一句代码是没有用的

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


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/6/17 17:34:00 [只看该作者]

如果点击窗体上修改按钮,因为没有绑定表,表中的数据不可能发生变化,用上面的代码不可能实现此功能,用什么方法实现只要单击修改数据按钮就执行禁止移动,直至到单击保存数据才可以恢复行的正常移动功能,请问应编写什么代码来执行此功能呀?
[此贴子已经被作者于2017/6/18 9:10:56编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/6/18 9:16:00 [只看该作者]

如果点击窗体上修改按钮,因为没有绑定表,表中的数据不可能发生变化,用上面的代码不可能实现此功能,用什么方法实现只要单击修改数据按钮就执行禁止移动,直至到单击保存数据才可以恢复行的正常移动功能,请问应编写什么代码来执行此功能呀?谢谢

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


加好友 发短信
等级:二尾狐 帖子:569 积分:4210 威望:0 精华:0 注册:2015/5/13 8:32:00
  发帖心情 Post By:2017/6/18 11:07:00 [只看该作者]


先定义一个全局变量


Public qjkg as Boolean = false


然后 在 BeforeSelRangeChange 事件弄个 开关

if qjkg=false then

 e.Cancel=True  '取消改变行

end if


在你那个按键  修改数据  点击事件加上  qjkg=false


保存数据 点击事件加上  qjkg=true



-------------以上只是参考,具体得自己尝试!



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


加好友 发短信
等级:一尾狐 帖子:465 积分:3216 威望:0 精华:0 注册:2017/4/18 1:15:00
  发帖心情 Post By:2017/6/18 16:10:00 [只看该作者]

如何只限制不能移动行,在本行内字段之间是可以移动的,因为要编辑数据,否则就编辑不了数据了


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/18 16:18:00 [只看该作者]

If qjkg=False Then
    If e.OldRange.RowSel <> e.NewRange.RowSel '如果选择的是不同的行
        e.Cancel=True  '取消改变行
    End If 
End If

 回到顶部