请问cxGrid主从表结构中如何把焦点移到从表的最后一行记录上?(100分)

  • 主题发起人 主题发起人 冰冷的雨
  • 开始时间 开始时间

冰冷的雨

Unregistered / Unconfirmed
GUEST, unregistred user!
cxGrid中按向下箭头可以在末尾增加一行空记录。
我在窗口的btnAppend按钮btnAppendClick事件中写代码如下:
var
AKey: Word;
begin
gtvBaseCode.Controller.GoToLast(False);
//把焦点移动到Grid的最后
AKey := 40;
//向下键
SendMessage(gtvBaseCode.Control.Handle,WM_KEYDOWN,AKey,[]);
//模拟输入向下键
。。。
结果什么都没发生,在gtvBaseCodeKeyDown事件里设置断点进行调试,根本没触发该事件。
直接调用OnKeyDown方法,向下键是捕获了,新行还是没增加:
SendMessage(gtvBaseCode.Control.Handle,WM_KEYDOWN,AKey,[]);
//模拟输入向下键
改为:
gtvBaseCode.OnKeyDown(nil,AKey,[]);
看来是GoToLast的问题。可cxGrid帮助里是这样说的:
TcxCustomGridTableController.GoToLast
Moves focus to the last record (grouping row or data record) within the view
或者还有什么好办法实现按下按钮后在从表记录末增加一条空记录(不想在用户点击“保
存”之前把空记录添加到数据库中,所以不要用AddNew等操作底层数据的方法)?
 
难道从表中没办法把焦点移到最后一行记录上吗?
 
cxGrid有很多事件可用,比如OnEdited事件,可以检查用户输入
 
问题已解决,不过还是感谢您的热心帮助
 
后退
顶部