Foxtable(狐表)用户栏目专家坐堂 → 如何定位光标?


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

主题:如何定位光标?

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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
如何定位光标?  发帖心情 Post By:2020/7/10 12:03:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:定位光标1.jpg
图片点击可在新窗口打开查看

如图

验证代码,datachanged 代码如下

Select Case e.DataCol.Name  '防止电话重复
   Case "tel1","tel2","tel3"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull(e.DataCol.name) = False
              If e.DataTable.Select("tel1 = '" & e.NewValue & "' Or  tel2 = '" & e.NewValue & "' Or tel3 = '" & e.NewValue & "'") .Count > 1 Then
                dr(e.DataCol.name) = e.OldValue
                  MessageBox.Show("请勿重复录入电话号码!")
          End If
        End If
End Select

输入单位电话1 确认的时候,如果电话有重复,弹出对话框,确认后光标重新定位到电话2,如何让光标从新定位到电话1?

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


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

forms("窗口1").controls("电话1").select()

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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2020/7/10 15:55:00 [只看该作者]

forms("新增客户").controls("TextBox4").Select()
成功
但是多个窗口调用这段代码呢?
比如 “修改客户信息” 窗口也有这个控件怎么办?

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


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

打开哪个窗口就调用哪个窗口的控件咯。如果提示打开了几个窗口就重复调用代码:

forms("新增客户").controls("TextBox4").Select()
forms("xxxx").controls("TextBoxxx").Select()
……

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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2020/7/10 16:12:00 [只看该作者]

这段代码是在 客户表 datachanged  事件里面。

Select Case e.DataCol.Name  '防止电话重复
   Case "tel1","tel2","tel3"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull(e.DataCol.name) = False
              If e.DataTable.Select("tel1 = '" & e.NewValue & "' Or  tel2 = '" & e.NewValue & "' Or tel3 = '" & e.NewValue & "'") .Count > 1 Then
                dr(e.DataCol.name) = e.OldValue
                  MessageBox.Show("请勿重复录入电话号码!"
          
forms("新增客户").controls("TextBox4").Select()
          End If
        End If
End Select

现在有两个窗口,
一个是新增客户窗口,一个是修改客户信息窗口  我怎么知道是哪个窗口调用它啊?

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


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

正常新增和修改一个窗口就可以吧,有必要分开?

判断一下咯:
if forms("新增客户").opened then
forms("新增客户").xxxx
elseif if forms("修改客户").opened then
forms("修改客户").xxxx
end if

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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2020/7/10 18:43:00 [只看该作者]

好吧 就算把两个窗口“新增客户信息”和“修改客户信息” 集合到一起。
菜单上打开窗口
Forms("新增客户").Open()
Tables("kehu").AddNew()

图片点击可在新窗口打开查看此主题相关图片如下:窗口1.jpg
图片点击可在新窗口打开查看

问题1

如果这时候不想添加客户,取消以后,新增的一行还是存在。怎解决?
取消按钮代码
Dim r As Row = Tables("kehu").Current
r.Reject() '撤销修改
e.Form.ClearErrors() '清除所有控件的错误提示
e.Form.Close()

问题2

如果添加代码
Tables("kehu").Current.Delete()
要是编辑客户信息的时候怎么办?编辑修改到一半不想修改了,点取消按钮,岂不是把这条信息删除了?

问题3

窗口标题“新增客户信息”,“修改客户信息”,怎么随条件变化?

[此贴子已经被作者于2020/7/10 19:00:53编辑过]

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


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

1、取消按钮代码

dataTables("kehu").Rejectchange() '撤销所有修改
e.Form.ClearErrors() '清除所有控件的错误提示
e.Form.Close()

2、这个是您要思考的问题,您(用户)想怎么办,然后程序才知道要怎么办

3、参考:http://www.foxtable.com/webhelp/topics/0870.htm,直接在窗口里添加新增,删除等功能,没有必要让用户不断的关闭窗口,打开窗口才能进行不同行的维护,窗口标题改为“用户信息维护”这种咯

 回到顶部