DBGrid中有OnKeyDown事件,在里面加入就行了

解决方案 »

  1.   

    这个我知道.我想知道的是:在OnKeyDown事件中只有sender,key,shift,三个参数,怎么得到目前所在的位置?目前的位置怎么表示?想对目前位置的下一个位置又如何表示?不好意思,小弟以前真的没有用过这个控件的。谢谢了。
      

  2.   

    OnKeyDown事件  if Key=VK_UP then ....
      else if Key=VK_DOWN then ...  
      else if Key=VK_RIGHT then ...
      else if Key=VK_LEFT then ...
      

  3.   

    其实dbgrid自己完全可以用方向键移动浏览的。不知道你想实现什么功能。
    不过可以这样试试呀
    if key = 40 then dbgrid1.datasource.dataset.next;
    if key = 38 then ...........................Prior;
    if key = 37 then dbgrid1.selectedindex := dbgrid1.seletedindex -1;
    if key = 38 then ..............................................+1;
    当然还要判断eof,bof什么的,不知道是不是你想要的
      

  4.   

    DBGridOnKeyDown(.........;key:word);
    begin
       case key of
       begin
          vk_uP:
              begin
                 if not dbgrid.datasource.dataset.bof then
                 dbgrid.datasource.dataset.prior;//呵呵,忘了怎么写了
              end;
          vk_down:
               begin
                 if not dbgrid.datasource.dataset.eof then
                 dbgrid.datasource.dataset.next;//呵呵,忘了怎么写了           end;
          vk_left://假如列的索引为0则向上移动一行,且社顶索引为列count-1
                  //如果不为零列索引-1
               begin
                 
               end;
           vk_right://同理VK_LEFT
               begin
               end;
       end;
    end;
      

  5.   

    if (key = 38 ) or (key = 40) then
        begin
            if ADOqueryLot.active then
                Edit1.text := ADOquery1.fieldbyname'fieldname').AsString;
        end;