以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]记录窗口中列单元格焦点的获取  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=48721)

--  作者:gfj72
--  发布时间:2014/4/3 16:58:00
--  [求助]记录窗口中列单元格焦点的获取

求助:

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

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

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

 


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

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

--  作者:Bin
--  发布时间:2014/4/3 17:23:00
--  
这个没有办法控制.
--  作者:狐狸爸爸
--  发布时间:2014/4/3 17:28:00
--  

非主流:

 

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


--  作者:gfj72
--  发布时间:2014/4/4 8:27:00
--  

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


--  作者:狐狸爸爸
--  发布时间:2014/4/4 9:44:00
--  

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

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


--  作者:gfj72
--  发布时间: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事件,在对话框后,我希望焦点还回到“班次”单元格,而不是执行回车键命令进入“机台号”单元格。要如何实现?


--  作者:有点甜
--  发布时间:2014/4/4 11:18:00
--  
以下是引用gfj72在2014-4-4 10:49:00的发言:

 

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

 

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

 

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


--  作者:gfj72
--  发布时间:2014/4/4 11:56:00
--  

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


--  作者:Bin
--  发布时间:2014/4/4 12:04:00
--  
非要这么做的话,可以在KeyDownEdit事件做下判断. 
If e.keycode =keys.Enter Then
    e.cancel=True
End If