Foxtable(狐表)用户栏目专家坐堂 → [求助]记录窗口中列单元格焦点的获取


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

主题:[求助]记录窗口中列单元格焦点的获取

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


加好友 发短信
等级:幼狐 帖子:59 积分:560 威望:0 精华:0 注册:2013/10/16 18:03:00
[求助]记录窗口中列单元格焦点的获取  发帖心情 Post By:2014/4/3 16:58:00 [只看该作者]

求助:

      我通过窗口的记录窗口向“表A“中输入数据,在点新增后,其中一些

满足条件的数据都会完成自动输入了,然后想让其中的第二列“班次”单元格获得焦点,

但结果总是第一列“生产日期”获得焦点,这如何设计?

 


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

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

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/4/3 17:23:00 [只看该作者]

这个没有办法控制.

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/4/3 17:28:00 [只看该作者]

非主流:

 

e.Form.Controls("RecordGrid1").BaseControl.Row = 1


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


加好友 发短信
等级:幼狐 帖子:59 积分:560 威望:0 精华:0 注册:2013/10/16 18:03:00
  发帖心情 Post By:2014/4/4 8:27:00 [只看该作者]

谢谢,非常有效,另外想再深入问一句,如果在获得焦点时,其光标是在单元格内处于全选,或光标在最前,或最后又如何设定呢?


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/4/4 9:44:00 [只看该作者]

e.Form.Controls("RecordGrid1").BaseControl.Row = 1

e.Form.Controls("RecordGrid1").BaseControl.StartEditing()


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


加好友 发短信
等级:幼狐 帖子:59 积分:560 威望:0 精华:0 注册:2013/10/16 18:03:00
  发帖心情 Post By:2014/4/4 10:49:00 [只看该作者]

谢谢狐爸,非常完美的解决了问题。程序已正常投入使用。

另外再请教个问题。

我在“表A”的datecolchanged事件中设置了如下代码

Select Case e.DataCol.name
    Case "班次","产品批号"
        Dim sr As DataRow = e.DataRow
        If sr.IsNull("班次") = False AndAlso sr.IsNull("产品批号") = False  Then
            If e.DataTable.Compute("Count([_Identify])","班次 = '" & sr("班次") & "' And 产品批号 = '" & sr("产品批号") & "'") > 1 Then
                MessageBox.Show("同一班次情况下不允许存在相同的批号,请确认!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                e.DataRow(e.DataCol.Name) = e.OldValue '取消输入
            End If 
        End If
End Select
如果我在“班次”中输入数据按回车键后发生了>1事件,在对话框后,我希望焦点还回到“班次”单元格,而不是执行回车键命令进入“机台号”单元格。要如何实现?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/4/4 11:18:00 [只看该作者]

以下是引用gfj72在2014-4-4 10:49:00的发言:

 

如果我在“班次”中输入数据按回车键后发生了>1事件,在对话框后,我希望焦点还回到“班次”单元格,而不是执行回车键命令进入“机台号”单元格。要如何实现?

 

你的这个需求用 validateEdit 事件更合适

 

http://www.foxtable.com/help/topics/0617.htm


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


加好友 发短信
等级:幼狐 帖子:59 积分:560 威望:0 精华:0 注册:2013/10/16 18:03:00
  发帖心情 Post By:2014/4/4 11:56:00 [只看该作者]

这个事件对于单个列值变化好用,但对于多列联动变化来说就没有那么好用了。


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/4/4 12:04:00 [只看该作者]

非要这么做的话,可以在KeyDownEdit事件做下判断. 
If e.keycode =keys.Enter Then
    e.cancel=True
End If


 回到顶部