处理一些列不可视时的情况
//请试试还正常不!
DBGrid1.Columns[0].Visible := False;

解决方案 »

  1.   

    //我都忘记还要处理列只读的情况了!
          while (I <> TDBGrid(Sender).SelectedIndex)
            and ((not TDBGrid(Sender).Columns[I].Visible) or 
            TDBGrid(Sender).Columns[I].ReadOnly) do begin
            if I + 1 < TDBGrid(Sender).Columns.Count then
              Inc(I)
            else I := 0;
          end;
          
      

  2.   

    //不得不承认我书写方法太别扭,考虑的情况过于复杂
    //可你想想看,这段代码可以适用于所有的DBGrid又有什么不值呢?
    //Ctrl+C,Ctrl+V完全不用再次修改