在DBGrid的OnKeyPress中写
if dbgrid1.selectedIndex=dbgrid1.colomns[i].index then//i为PickList所在Column序号
  if key<>#13 then abort;

解决方案 »

  1.   

    响应DBGrid的OnKeyPress事件,应该这样写:  if TDBGrid(Sender).SelectedIndex = cYourColIndex then
      case Word(Key) of
        VK_RETURN, VK_UP, VK_DOWN, VK_INSERT, VK_LEFT, VK_RIGHT:
          Exit;
      else
        Key := #0;
      end;
      

  2.   

    谢谢zcheny()的回答,但还有个问题,为什么最后赋值为Key:=#0呢?我在KeyPress事件中写入如下代码:Showmessage(inttostr(ord(key)));当按下回车键时Key=#0,为什么不是#13呢?(当然,这时DbGrid的ReturnAsTab属性设为True,如果设为False则程序没反应)。