如题

解决方案 »

  1.   

    修改它的Options相关选项就能实现了
      

  2.   

    将DBGrid的Option属性中的dgMulitSelect 设为True就可以
      

  3.   

    DELPHI的TDBGrid控件主要用来处理数据表,它的属性中有一个dgMultiSelect,若此属性设
    定为TRUE,则可以选中多个记录(可用CTRL+鼠标左键选择多个记录)。对选中的多个记录
    可以有以下几种处理方式,比较简单的两种是:清除所有的选择记录可用DBGrid1.SelectedRows.Clear语
    句;删除所有的选择记录可用DBGrid1.SelectedRows.Delete语句。但如果想获得选中的所有记录的其他信
    息,比如,在单独的一个窗体中显示用户选择的记录的第一个字段的内容(如所有选择的姓名)如何处理呢?
    这就要使用书签功能了,下面是我编写的一个程序中的过程,来将用户选择的多个记录集中显示在另外一个
    窗体中(我使用的是DELPHI5+补丁1),供参考使用 
    procedure GetSelectedRecord 
    (DataSet : TDataSet;FieldName : String; 
    BookList : TBookList;Strings : TStrings); 
    //这个过程中的参数分别为:数据表、字段名称、书签、用来保存所选字段内容的 
    //字符串(用于将内容传递到另一个单独窗体中的TLIST控件中) 
    var 
    I: Integer; 
    bm : TBookMark; 
    begin 
    Strings.Clear; 
    with Dataset do begin 
    DisableControls; 
    bm :=GetBookMark; 
    try 
    //每个选择的记录都有一个书签标志,这就为处理它们提供了条件 
    for I :=0 to BookList.Count - 1 do begin 
    Book :=BookList[I]; 
    Strings.Add(DataSet.FindField(fieldname).AsString); 
    end; 
    finally 
    GotoBookMark(bm); 
    FreeBookMark(bm); 
    EnableControls; 
    end; 
    end; 
    end; 调用举例: 
    GetSelectedRecord(Table1, 'NAME', DBGrid1.SelectedRows, Form2.ListBox1.Items);
      

  4.   

    好像各位没明白我的意思,我是说在dbgrid下面设一个按钮,全选,然后点击按钮,可以使当前dbgrid的所有记录全部选中,
      

  5.   

    // 别人实现过的
    function GridSelectAll(Grid: TDBGrid): Longint; 
    begin 
      Result := 0; 
      Grid.SelectedRows.Clear; 
      with Grid.Datasource.DataSet do 
      begin 
        First; 
        DisableControls; 
        try 
          while not EOF do 
          begin 
            Grid.SelectedRows.CurrentRowSelected := True; 
            inc(Result); 
            Next; 
          end; 
        finally 
          EnableControls; 
        end; 
      end; 
    end; procedure TForm1.Button1Click(Sender: TObject); 
    begin 
      GridSelectAll(DBGrid1); 
    end; 全选不中
    DBGrid1.SelectedRows.Clear;