ListBox的内的Item很多时候,自动出现垂直滚动条,有能对点击向上滚动、向下滚动两个按钮的操作和拉动滚动条本身滚动时候的操作么?因为我想在滚动时得到一些item的值。或者把ListBox撑大也行,这样避免显示滚动条。不过由于item是从数据库里动态加载的,是不是加载的时候要先判断一下所有item高度的和然后再撑大ListBox?但是如果数据库里项特别多的时候,超过屏幕本身长度,该怎么办?~所以最好能有对滚动事件的操作最好

解决方案 »

  1.   

    可以通过TopIndex来设置它的滚动,比如:ListBox listbox = new ListBox();
    listbox.TopIndex = listbox.Items.Count - 1;
      

  2.   

    hbxtlhx(平民百姓-自已动手,丰衣足食),您好,发现我几个帖子都有您的回复,非常感谢
    这次这个问题,如果用TopIndex的话还是没法控制上下按钮点击或者滚动条本身的事件
    不知道它们动的时候触发什么事件?
      

  3.   

    知道你的意思了,你是要知道ListBox是否在滚动是吗?你需要重写ListBox来得到这个消息,比如:
    class ListBoxEx:ListBox
    {
    protected override void WndProc(ref Message m)
    {
    if (m.Msg == 0x115)
    {
    Console.WriteLine("正在滚动");
    }
    base.WndProc(ref m);
    }
    }
      

  4.   

    是的,是想获得它在滚动,只要一滚动,里面的items坐标都会变,我主要是想得到滚动以后里面item的新坐标。
    重写的话,这样是不是要做自定义控件?