下面是一个stringgrid显示combobox的例子,你自己改成edit就可以
procedure TForm1.StringGrid1Click(Sender: TObject);
var
rect: TRect;
begin
if StringGrid1.Col = 1 then//如果点击第1例就显示ComboBox
begin
ComboBox1.ItemIndex := -1;
rect := StringGrid1.CellRect(StringGrid1.Col, StringGrid1.Row);
ComboBox1.Top := rect.Top + StringGrid1.Top;
ComboBox1.Left := rect.Left + StringGrid1.Left;
ComboBox1.Width := rect.Right - rect.Left;
ComboBox1.ItemHeight := rect.Bottom - rect.Top - 6;
ComboBox1.Text := StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row];
ComboBox1.Visible := true;
end
else
begin
ComboBox1.Visible := false;
end;
end;
procedure TForm1.ComboBox1Exit(Sender: TObject);
begin//这里进行你的数据检验
if ComboBox1.ItemIndex <> 1 then
begin showmessage('数据输入错误');
ComboBox1.SetFocus;
end
else
StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row] := ComboBox1.Text;
end;