delphi7 中stringgrid的不可编辑区域怎么才能在右边

delphi7中stringgrid的不可编辑区域怎么才能在右边... delphi7 中stringgrid的不可编辑区域怎么才能在右边 展开
 我来答
zjgzfs
2010-03-22 · TA获得超过428个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:478万
展开全部
将最左边的不可编辑列移到最右边,不太容易。但可以“曲线救国”:

1、将FixedCols设置为0,这样最左边的不可编辑列就看不到了。
2、在StringGrid的OnDrawCell事件中,添加如下代码:

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if Acol=4 then //假定最右边一列是第5列
begin
StringGrid1.Canvas.Brush.Color:=clBtnFace;
StringGrid1.Canvas.FillRect(Rect);
end;
end;
使得最右边一列变成灰色。

3、在StringGrid的OnSelectCell事件中,添加如下代码:

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
if ACol=5 then
StringGrid1.Options:=StringGrid1.Options-[goEditing]
else
StringGrid1.Options:=StringGrid1.Options+[goEditing]
end;

使得当单击鼠标,进入第5列时,这一列的单元格变成不可编辑。

---------------------------------------------------------
这也算不是办法的办法吧?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式