delphi中stringgrid中我想通过点击fixedrows设置的固定行选中一整行,类似excel,
2个回答
展开全部
可以的,,除了不能合并单元格外,其它大部分功能都能做得与EXCEL差不多.
1、将Options属性中的,goFixedColClick选中为true.这是为了使FIXED事件起作用。
2、FixedCellClick事件中,判断是否点到左边表头。
3、将那一行都设为选中状态就行了。
procedure TForm1.StringGrid1FixedCellClick(Sender: TObject; ACol,
ARow: Integer);
var
mRect: TGridRect;
begin
if (ACol = 0) and (ARow <> 0) then
begin
mRect.Left:= 1;
mRect.Right:= StringGrid1.RowCount - 1;
mRect.Top:= ARow;
mRect.Bottom:= ARow;
StringGrid1.Selection:= mRect;
end;
end;
同理,还能做选中一列,选中最左上那一格时选中所有。
1、将Options属性中的,goFixedColClick选中为true.这是为了使FIXED事件起作用。
2、FixedCellClick事件中,判断是否点到左边表头。
3、将那一行都设为选中状态就行了。
procedure TForm1.StringGrid1FixedCellClick(Sender: TObject; ACol,
ARow: Integer);
var
mRect: TGridRect;
begin
if (ACol = 0) and (ARow <> 0) then
begin
mRect.Left:= 1;
mRect.Right:= StringGrid1.RowCount - 1;
mRect.Top:= ARow;
mRect.Bottom:= ARow;
StringGrid1.Selection:= mRect;
end;
end;
同理,还能做选中一列,选中最左上那一格时选中所有。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询