如何在stringgrid中用下拉列表修改原数值(120分)

  • 主题发起人 主题发起人 xyd
  • 开始时间 开始时间
X

xyd

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在stringgrid中用下拉列表修改原数值,类似dbgrid一样
 
创建一个下拉列表。然后截取stringgrid的鼠标事件,
当一个grid得到焦点的时候,在适当的位置把这个下拉列表显示出来
估计是这个样子的。:)
 
谢谢回答,最后为你加分.
如何能做得同控件dbgrid一样了?
有没有简单的方法,下拉列表怎么能显示在合适的地方了?即如何能找到焦点
cell的位置了?
 
处理stringGrid的Ondraw事件,获取当前Cell的Rect属性
(含该矩形的Left、Top等值),然后用ListBox的SetBound方法,根据Rect的位置
来给ListBox定位,具体可查Delphi自带帮助,但注意Rect的位置值是相对Grid控件
的容器控件而定的。
 
补充一下,随时可通过读
stringgridName.cells[stringGridName.col,stringGridName.row]
来获取当前cell的值
stringGridName.col和stringGridName.row即为当前cell的坐标.
 
先在系统中定义
VAR AROW,ACOL:INTEGER;
在鼠标事件中写入
procedure TMainForm.JiBenGridMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if (ARow <> -1) or (ACol=-1) then exit;
Grid1.MouseToCell(x, y, ACol, ARow);
//若你的CELL[2,2]要使用时,
if (acol=2)and(arow=2)then
combobox1.visible:=true
else
combobox1.visible:=False;

END;
 
:xyd
你还上网吗?
 
多人接受答案了。
 
后退
顶部