在stringgrid中放了个combobox,怎么取combobox中的值到stringgrid的单元中?(50分)

  • 主题发起人 主题发起人 qiusy
  • 开始时间 开始时间
Q

qiusy

Unregistered / Unconfirmed
GUEST, unregistred user!
我在stringgrid的selectcell事件中插入了combobox,
我相当光标从一个单元格移动到另一个单元格时,让原来的单元格的值
等于combobox的值!该怎么办?
还有怎么才能使stringgrid的第一行的text居中?
 
在线等待,请帮忙!
 
stringgrid.cells[stringgrid.col,stringgrid.row] := combobox.text;
 
关键是放在什么事件中?
 
combobox 的 onclick 或 onexit
即 combobox 中的值有变化时.
 
stringGrid[selection.left,selection.left.top] := combobox1.text;
我的做法一般是放在combobox的keypress事件中,
if key=#13 then
stringGrid[selection.left,selection.left.top] := combobox1.text;
 
也会用鼠标点选,Onexit 比较合适,但OnClick 可能也行。
 
可以了,放在onexit中可以的,谢谢了
第二个问题没人回答吗?
还有怎么才能使stringgrid的第一行的text居中?(是不是用textout,但我不知道该怎么
传参数)
 
onSelectCell
Combobox.text := StringGrid.cells[stringgrid.Col,Stringgrid.row];

onExit
StringGrid.cells[stringgrid.Col,Stringgrid.row] := Combobox.text;
 
第二个问题没人回答吗?
还有怎么才能使stringgrid的第一行的text居中?(是不是用textout,但我不知道该怎么
传参数)
 
把你第一个问题代码给我看看
来告诉你怎么居中,呵呵
我用StringGrid时,都让他们垂直居中的,不过代码我得回去考
 
第一个问题就是按上面的方法解决的
麻烦你给我贴出来怎么居中?
 
同行们帮帮忙!怎么是文本居中?
明天就要交货了!
 
procedure TfrmMain.StringGrid1DrawCell(Sender: TObject;
ACol,
ARow: Integer;
Rect: TRect;
State: TGridDrawState);
var s:string;
begin
s:=Trim(StringGrid1.Cells[ACol,Arow]);
StringGrid1.Canvas.FillRect(Rect);
//如果StringGrid1的DefaultDrawing属性为false,你要自己指定StringGrid1.Canvas的Font大小和颜色等信息
DrawText(StringGrid1.Canvas.Handle,PChar(s),Length(s),Rect,DT_CENTER or DT_SINGLELINE or DT_VCENTER);
end;

 
如果你只想某些单元居中,DefaultDrawing设置为true,判断ACol,ARow是否满足要求就行了
上面把所有Cell的内容都垂直居中了
 
谢谢了,分发了
 
多人接受答案了。
 
后退
顶部