求助!StringGrid问题 (i am waiting……)

Sunny21 2003-06-02 09:29:44
发生OnSelectCell事件时,我需要判断上次选中的cell的值是否为空,为空的话,焦点重新回到上次选中的cell,如何实现?
...全文
31 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lion_lh 2003-06-02
  • 打赏
  • 举报
回复
全局变量记录上次选中的 FRow, FCol;

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
if trim(stringgrid1.Cells[FCol,FRow])='' then
begin
CanSelect:=false;
StringGrid1.Row :=FRow;
StringGrid1.Col :=FCol;
StringGrid1.SetFocus;
end
else
begin
FRow:=ARow;
FCol:=ACol;
end;

end;
Sunny21 2003-06-02
  • 打赏
  • 举报
回复
想选中的是上次焦点所在的Cell,这样写的话,不是选中的是这次了,我想可能不能在OnSelectCell中写的,不在知道在那个事件中写好?
lovelymelon 2003-06-02
  • 打赏
  • 举报
回复
form1.StringGrid1.MouseToCell(0,0,acol,arow);
form1.StringGrid1.Focused;
Sunny21 2003-06-02
  • 打赏
  • 举报
回复
这样子没有用阿,我可以算出上次选中cell的行和列,但是我无法在OnSelectCell事件中让焦点回置,SOS……
ihihonline 2003-06-02
  • 打赏
  • 举报
回复
只能设置全局变量
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
//..
PRow := FRow;
PCol := FCol;
FRow := ARow;
FCol := ACol;
end;

----------------
沉沦中..........

5,391

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧