stinggrid的问题(50分)

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

qiusy

Unregistered / Unconfirmed
GUEST, unregistred user!
1、text怎么居中?(canvas.textout该怎么来定)
2、对一个单元格编辑完成后,当按右箭头时,光标右移一个单元格?
(我在keydown事件中写了
if key=vk_right then
begin
stringgrid1.Row:=row;
stringgrid1.Col:=col+1;
end;
,这样对刚才编辑的单元格的内容也是乱跑的)
在线!
 
procedure TForm1.StringGrid1KeyDown(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
if (stringgrid1.Col<stringgrid1.ColCount-1) and(key=vk_right) then
stringgrid1.Col:=stringgrid1.col+1
else
if (stringgrid1.Col>1) and(key=vk_left) then
stringgrid1.Col:=stringgrid1.col-1;
end;
以上代码可以完成你的第二个要求
 
我就是这样写的阿
stringgrid1.Row:=row;
stringgrid1.Col:=col+1;
其中的row和col是我定义的变量,在selectcell事件中取得
这样做,当key=vk_right时,刚才输入的数据就会乱跑的

 
没有啊,我刚才试了一下
if key=vk_right then
stringGrid1.col:=stringGrid1.col+1;
不过,在用右箭头移动后,要在stringGrid1中确认一下焦点。但我没有发现"输入的数据就会
乱跑的"情况
 
呵呵;不要自己定义row和col,会冲突的
 
写到KeyUp中好一点?
 
我在程序中用的当然不是row和col了,用的识别的名字
 
用我的代码,不会有问题的!!!
代码见我上次的回答!!!
 
你不能在selectcell事件中这样做,因为这样会递归调用(selectcell你改变到新网格,这时selectcell事件又发生了!)
 
移动的事解决了,但怎么才能让stringgrid的第一行的text居中呢???
textout???
 
移动的事解决了,但怎么才能让stringgrid的第一行的text居中呢???
textout???
 
后退
顶部