导航:
论坛 -> DELPHI技术
斑竹:liumazi,sephil
作者:
2020/1/17 15:12:42
标题:
关于TListView控件使用求助
浏览:1037
加入我的收藏
楼主:
有个小工具软件,用了TListView控件,里面有个定位显示,是按照2列的内容满足要求,就定位选中这一条记录,但是有一个问题,在数据信息比较多的情况下,这个定位显示有可能刚好在一屏的低端,这样看起来不是很舒服,现要求这条记录显示在TListView的中部或者头部,请问这个有办法实现吗?
此帖子包含附件: 大小: 23.0K
----------------------------------------------
-
作者:
2020/1/17 17:43:48
1楼:
var R: TRect; Item: TListItem; begin Item := ListView1.FindCaption(0, 'abcd', True, True, False); if Item <> nil then begin ListView1.Selected := Item; Item.MakeVisible(True); ListView1.SetFocus; R := Item.DisplayRect(drBounds); ListView1.Scroll(0, R.Top - R.Height); end; end;
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
作者:
hs_kill (lzl_17948876)
★☆☆☆☆
-
普通会员
2020/1/21 17:49:08
2楼:
listview.makevisible原则是, 要显示的item序号比当前显示的高就在最下面显示, 反之在最上面显示 所以, 自己计算一下当前topitem的序号和要显示的序号关系, 然后去显示增加或减少的listview可见行数/2序号的item, 然后再选中你要显示的item
----------------------------------------------
http://www.cnblogs.com/lzl_17948876/
作者:
2020/2/28 14:23:34
3楼:
to earthsbest: 谢谢,问题解决了,TRect没有Height,所以我调整了一下: R := lvInfo.Items[I].DisplayRect(drBounds); iHeight := R.Bottom - R.Top; lvInfo.Scroll(0, R.Top - iHeight);
----------------------------------------------
-
作者:
2020/2/28 14:24:04
4楼:
to hs_kill: 谢谢!
----------------------------------------------
-