怎么样设置TDBGRID 当前行某字段的焦点?

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, Grids, DBGrids, ADODB, StdCtrls;type
      TForm1 = class(TForm)
        ADODataSet1: TADODataSet;
        DBGrid1: TDBGrid;
        DataSource1: TDataSource;
        Button1: TButton;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    var
      i: integer;
    begin
      ADODataSet1.FieldDefs.Add('F1', ftString, 20);
      ADODataSet1.FieldDefs.Add('F2', ftString, 20);
      ADODataSet1.CreateDataSet;
      ADODataSet1.Open;
      for i := 1 to 100 do
        ADODataSet1.AppendRecord([inttostr(i), 'data']);
      ADODataSet1.First;
      DBGrid1.Options := DBGrid1.Options + [dgAlwaysShowSelection];
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      ADODataSet1.Locate('F1', '66', [loCaseInsensitive]);
      DBGrid1.SelectedIndex := 1;
    end;end.
      

  2.   

    object Form1: TForm1
      Left = 192
      Top = 107
      Width = 696
      Height = 480
      Caption = 'Form1'
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      OldCreateOrder = False
      OnCreate = FormCreate
      PixelsPerInch = 96
      TextHeight = 13
      object DBGrid1: TDBGrid
        Left = 136
        Top = 200
        Width = 320
        Height = 120
        DataSource = DataSource1
        Options = [dgEditing, dgTitles, dgIndicator, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgAlwaysShowSelection, dgConfirmDelete, dgCancelOnExit]
        TabOrder = 0
        TitleFont.Charset = DEFAULT_CHARSET
        TitleFont.Color = clWindowText
        TitleFont.Height = -11
        TitleFont.Name = 'MS Sans Serif'
        TitleFont.Style = []
      end
      object Button1: TButton
        Left = 568
        Top = 216
        Width = 75
        Height = 25
        Caption = 'Button1'
        TabOrder = 1
        OnClick = Button1Click
      end
      object ADODataSet1: TADODataSet
        Parameters = <>
        Left = 232
        Top = 72
      end
      object DataSource1: TDataSource
        DataSet = ADODataSet1
        Left = 232
        Top = 128
      end
    end
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      DBGrid1.Fields[5].FocusControl;// Fields[5]就是第6列
      DBGrid1.SetFocus;
    end;
      

  4.   

    这样也可以:procedure TForm1.Button1Click(Sender: TObject);
    begin
      TDrawGrid(DBGrid1).Col := 3;  //第3列
      DBGrid1.SetFocus;
    end;哈哈,结贴
      

  5.   

    SelectedIndex  本来就可以
    用DBGrid1.Options := DBGrid1.Options + [dgAlwaysShowSelection]就可以不用DBGrid1.SetFocus