BCB中的TListBox---如何将滚动行标控制在最后一行?

时间:2021-08-04 21:14:56

         BCB中的TListBox很常见, 主要有两种作用: 

        1. 让用户选择, 程序来感知用于的选择, 并作出反应。

        2. 用于动态显示信息等。  

        下面我们就第2点来说一说, 看代码:

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    int i = 0;
    for(i = 0; i < 20; i++)
    {
        ListBox1->Items->Add(i);
        ListBox1->ItemIndex = ListBox1->Items->Count - 1;   // 非常关键, 控制在最后一行滚动

        Sleep(500);
    }
}
//---------------------------------------------------------------------------
       看一下效果:

BCB中的TListBox---如何将滚动行标控制在最后一行?
       

       可以看到, 行标在最后一行。 有兴趣的朋友, 可以去掉ListBox1->ItemIndex = ListBox1->Items->Count - 1; 这个语句, 然后看看结果。 提示: 达不到上述效果。