我现在想实现这样一个功能,一个DBGrid表格中某列用到了Lookup字段,当我在该列第一行从下拉列表中选择数据后自动记录所选的值,然后在其他行同一列的单元格获得焦点时自动将前面所选的值赋给此单元格,现在遇到的问题如下:
1、单元格获得焦点的事件是哪个,鼠标点击的我知道,就是使用键盘操作时不清楚在哪个事件里写代码,比如按Tab键跳到该列时就自动赋值。
2、赋值代码不是很清楚。
先谢谢你的解答

解决方案 »

  1.   

    你好,針對你的問題我提一下想法,你有提到按下tab鍵就跳到你要設定的lookup這個欄位,那你只要在keypress的event中,判別key的值,然後用TKeybdInput這個事件設定看看能不能取的你要的lookup的值,這個可以利用指令模擬keyboard的動作。
      

  2.   

    首先记住之前选择的数值,这个很简单吧,然后在OnColEnter事件中
    ADOQuery.Edit;
    ADOQuery.FieldByName('所选列的字段').AsString := 之前的值;
    ADOQuery.Post;
      

  3.   

    首先谢谢上面几位的回答OnColEnter事件不能完全满足,如果我在同一列上按上、下方向键来切换单元格的话好像没有出发OnColEnter事件,这种情况下的单元格获得焦点应该在哪个事件下写呢
      

  4.   

    那就在KeyDown事件中处理,或者在数据集的afterscroll事件中处理