急!急!急!急!急!急! 请问各位高手一个Tlistview 控件的问题

yymdwhl 2004-06-29 04:31:36
请问各位:
Tlistview用代码动态的添加Item时,超出了一屏的数目时,会出现滚动条,请问:如何使焦点定位在最后一行,也就是滚动条会自动滚动到最下边的位置?保证最后一条目始终显示在当前一屏内。
...全文
134 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengsh 2004-07-04
  • 打赏
  • 举报
回复
用myy的方法
//..添加Item
TListItem *Item;
Item=ListView->Items->Add();
Item->Caption="OK";
//等等

..
Item->MakeVisible(false);
//OK,成功
pp616 2004-07-03
  • 打赏
  • 举报
回复
ListView->Perform(WM_HSCROLL,SB_RIGHT,0);
pp616 2004-07-03
  • 打赏
  • 举报
回复
ListView->Perform(WM_VSCROLL,SB_BOTTOM,0);
JetKingLau 2004-07-03
  • 打赏
  • 举报
回复
看看 TListView 是不是有 TopIndex 属性,如果有,设其值为 Count 就行了。

没装 BCB,所以不太肯定。
cloudred 2004-07-02
  • 打赏
  • 举报
回复
MakeVisible实现
myy 2004-06-30
  • 打赏
  • 举报
回复
//..添加Item

..
Item->MakeVisible(false);
..
yygang 2004-06-30
  • 打赏
  • 举报
回复
if (CurRecordNo < ListView->Items->Count)
{
ListView->Items->Item[CurRecordNo]->Selected = true;
ListView->Items->Item[CurRecordNo]->Focused = true;
if (ListView->TopItem->Index > CurRecordNo)
{
int DY = (ListView->TopItem->Index - CurRecordNo) *
(ListView->ClientHeight / ListView->VisibleRowCount);
ListView->Scroll(0, -DY);
}
else if ((ListView->TopItem->Index +
ListView->VisibleRowCount - 1) < CurRecordNo)
{
int DY = (ListView->TopItem->Index + ListView->VisibleRowCount
- 1 - CurRecordNo) *
(ListView->ClientHeight / ListView->VisibleRowCount);
ListView->Scroll(0, -DY);
}
}
yymdwhl 2004-06-29
  • 打赏
  • 举报
回复
具体怎么做啊?
sxzqlzx 2004-06-29
  • 打赏
  • 举报
回复
判断一下就知道了

604

社区成员

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

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