stringgrid 固定列(3D效果+可编辑) stringgrid 设置了两列为固定列(方便水平滚动时显示标题),现在我想让这两列跟普通cell一样可编辑,请问怎么实现?最好,风格也跟普通cell一样,没有3D效果 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 非3d效果可用stringgrid.ctrl3d:=false; fixedcol列是不可编辑的(除了用代码)……要是有简单办法可实现你要的效果,同求……复杂的办法就是滚动条水平滚动时不断的重绘……难看点的办法是点击固定列的cell时,放个Edit进去,动态显示/隐藏……我猜你想这么实现是因为新增了一行,然后标题Cell为空,要填内容是吧?何不在新增时弄个inputbox什么的让用户输入标题呢? 自己写个控件吧。。要不你可以用ListView代替。。 TStringGrid就不要折腾了,刚看了下源码,要想实现你这要求会比较困难,MouseDown、MouseToCell、CellRect、UpdateEdit等函数逻辑都需要调整,而且大部分函数在子类中无法重写(没有声明virtual),还不如像2楼说的,找第三方控件吧 不要显示标题,把FixedCols、FixedRows设置为0其它列做标题 谢谢楼上所有大神有个新问题我有个其他控件在stringgrid之上拖动,当拖动很快时,stringgrid 会有时来不及重绘有什么办法让我在stringgrid之上移动其他控件时,不会在stringgrid之上留下痕迹(注:拖动时不停完全重绘的方法是不对的,会造成不停闪烁) 重绘事件增加2个bool变量bdrawing,bneedagain:boolean;都初始化为false重绘事件begin if bdrawing then begin bneedagain:=true; exit; end; bdrawing:=true; try... finally bdrawing:=false; end;end;另外,注意根据bneedagain觉得是否要再重绘一次(以前的重绘,并不是最后结果) 没有效果啊,拖动那个控件后,还是在stringgrid之上留下来不及重绘的区域 VirtualStringTree的NODE.INDEX如何修改? 关于TreeView Delphi2011支持Win64编译吗? 请问这种图标怎么使用。谢谢 DELPHI获取目标窗体的长度和高 谁有MD5的算法源代码,要能在DLL中正常使用 怎么控制Qreport分页?(着急中……) 请问要把一张表中的所有记录插入到另一张表应该怎么做? 高分求解:如何实现在程式中自动打开一个Web页面,并将Web页面的内容自动存为.txt文件? 字符串中包含 字符串结束符 0 如何去掉 100分 求稳定的Delphi HTML编辑器 请教:关于等待对话框和线程,内详
要是有简单办法可实现你要的效果,同求……
复杂的办法就是滚动条水平滚动时不断的重绘……
难看点的办法是点击固定列的cell时,放个Edit进去,动态显示/隐藏……我猜你想这么实现是因为新增了一行,然后标题Cell为空,要填内容是吧?何不在新增时弄个inputbox什么的让用户输入标题呢?
bdrawing,bneedagain:boolean;都初始化为false
重绘事件
begin
if bdrawing then
begin
bneedagain:=true;
exit;
end;
bdrawing:=true;
try
...
finally
bdrawing:=false;
end;
end;另外,注意根据bneedagain觉得是否要再重绘一次(以前的重绘,并不是最后结果)
没有效果啊,拖动那个控件后,还是在stringgrid之上留下来不及重绘的区域