rt

解决方案 »

  1.   

    按end键不是可以到最右边吗
    你可以在按左键的事件里把这个键拦住,
    把它变成end键就可以了
      

  2.   

    你们都有没有试过呀,哪里行得通,加一adoconnection1,adotable1,datasource1,dbgrid1,设置性后运行,光标处在第一列,但按左移键没有反应
      

  3.   

    应该可以的呀 除非最有一列是disable的
      

  4.   

    “为什么光标不会移到表格的最后一列”
    又不是循环的,怎么可以这样移动。自己处理keypress事件好了。
      

  5.   

    keydown过程写如下代码:
    if (key=vk_left) and (dbgrid1.GetActiveCol=1) then
    begin
    //如果不需要拉动水平条即可看到最后一列就这样:
       dbgrid1.SelectedIndex:=dbgrid1.GetColCount;
    //如果列很多,需要拉动水平条才能看到最后一列:
    //   DBGrid1.SetActiveField(最后一列的字段名);
    end;
      

  6.   

    keydown过程写如下代码:
    var
       FistCol:integer;
    begin
       FistCol:=dbgrid1中第一列的字段在表中的位置;
       if (key=vk_left) and (dbgrid1.SelectedField.FieldNo=FistCol) then
       begin
          dbgrid1.SelectedIndex:=dbgrid1.FieldCount;
       end;
    end;
      

  7.   

    procedure TForm1.DBGrid1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
    if (key=vk_left) and (dbgrid1.SelectedIndex=0) then
    begin
      dbgrid1.SelectedIndex:=dbgrid1.FieldCount-1;
    end;
    if (key=vk_right) and (dbgrid1.SelectedIndex=dbgrid1.FieldCount-1) then
    begin
      dbgrid1.SelectedIndex:=0;
    end;
    end;
      

  8.   

    procedure TForm1.DBGrid1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
       if (key=vk_left) and (dbgrid1.SelectedIndex=0) then
          dbgrid1.SelectedIndex:=dbgrid1.FieldCount-1
       else if (key=vk_right) and (dbgrid1.SelectedIndex=dbgrid1.FieldCount-1) then
          dbgrid1.SelectedIndex:=0;
    end;