如何在stringgird中指定某列回车后将当前编辑的值,转到edit1.text中去,如下:
With StringGrid1  do
             Edit1.Text := Cells[0,2];
我想要的是在第一列中,编辑后回车得到的值给edit1.text,也就是在第一中最后编辑的格

解决方案 »

  1.   

    放两个edit实现procedure TForm1.StringGrid1Click(Sender: TObject);
    var
      vRect: TRect;
    begin
      if (StringGrid1.Col=1) then
      begin
        vRect := StringGrid1.CellRect(StringGrid1.Col,StringGrid1.Row);
        Edit1.Top := StringGrid1.Top + vRect.Top+1;
        Edit1.Width := vRect.Right-vRect.Left;
        Edit1.Height := vRect.Bottom - vRect.Top ;
        Edit1.Left := StringGrid1.left + vRect.Left + 1;
        Edit1.Text := StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row];
        Edit1.Visible := true;
        Edit1.SetFocus;
      end;
    end;procedure TForm1.Edit1Change(Sender: TObject);
    begin
      StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row] := Edit1.Text;
    end;procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key=#13 then Edit2.Text := edit1.Text;
    end;
      

  2.   

    最简单的是这样:
    procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key=#13 then
      begin
        if StringGrid1.Col=1 then
        begin
          Edit2.Text := Stringgrid1.Cells[StringGrid1.Col,StringGrid1.Row];
        end;
      end;
    end;