当ListBox中的数据超出显示行数时,它会自动出现滚动条,不知道有什么办法可以屏蔽,或者怎么样才能做出像《东方影都》,winamp那样的播放列表,望赐教!!!

解决方案 »

  1.   

    把它放在 Panel 里,修改高度
      

  2.   

    to yingshang(伤影) :
           是哪一个,我找不到,属性中我一个一个的试了,没用,它的帮助中也找过,就是找不到,帮帮我???
      

  3.   

    to inshua(孟昭)
         修改高度???是修改ListBox的高度吗???那样不行呀,要是往下移的话,ListBox下面的内容看不到,我试着修改Panel的宽度,好象效果达到了,但不知道怎么控制它往上移,往下移????
      

  4.   

    SendMessage(ListBox1.Handle,LB_SETHORIZONTALEXTENT,0,0);
      

  5.   

    我实现类似winamp中的列表是这样作的:
    假设listview中的每个项目高度为15,在formcanresize时计算form的大小恰好能完整的容纳整数行item,实现类似:NewHeight:=(NewHeight div ItemHeight) *ItemHeight;
    同时将listview的高度设置为这个高度,并自己使用一个TList(或TStringList)来存放具体数据,而在界面listview中,根据scrollbar(或你自己实现的类似控件)的当前位置来计算当前应该显示数据的哪一部分,即当前显示数据在tlist中是从几号index开始的,然后从tlist中抽出刚好界面显示的item,显示到listview中,
    最好使用tlist,指向某个自定义的record,其中一个字段必须要保存该项目是否被select,在itemselect事件中写到具体的record中,并在刷新界面显示时,根据是否selected来自动选中item,如果是多选的话,要在selectitem事件中判断ctrl键和shift键,比较麻烦,你可以自己想想。。
      

  6.   

    修改 LB 的高度,(取字体的高度你该知道吧 Canvas. 什么的)上下移更简单啊,改 Top 属性不就完了。
      

  7.   

    ShowScrollBar(ListBox1.Handle, SB_BOTH ,false);
    ShowScrollBar(ListBox1.Handle, SB_VERT, False); //隐藏纵向滚动条
    ShowScrollBar(ListBox1.Handle, SB_HORZ, False); //隐藏横向滚动条