日期:2014-05-18  浏览次数:20731 次

C# listview每次刷新后总是跳到listview的最上方,这样如果查看listview比较靠下的数据时很不方便,请教大虾有什么解决办法?
我的方案是采用timer控件每隔3秒钟对listview进行刷新,也就是消除现有数据,重新遍历数据库,显示到listview上,这些都没有问题了,只是每次刷新后listview老是蹦到最上方,这样如果刷新快的话根本无法看下方的数据了(listview显示类型为detail),希望大侠们能给个解决方案!

------解决方案--------------------
C# code
listView1.Items[listView1.Items.Count - 1].EnsureVisible();//这句保证滚动条始终在最下方

------解决方案--------------------
listView1.Items[listView1.Items.Count - 1].EnsureVisible();可以

EnsureVisible确保指定项在控件中是可见的,必要时滚动控件的内容。


------解决方案--------------------
C# code

        int _index = 0;
        private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
        {
            if (e.IsSelected)
            {
                ListViewItem lva = e.Item;
                _index = lva.Index;
            }
        }       
        private void addlist()
        {
            listView1.Items.Clear();
            for (int i = 0; i < 20; i++)
            {
                string[] s = new string[2];
                s[0] = i.ToString();
                s[1] = (i + 1).ToString();
                ListViewItem lvt = new ListViewItem(s);
                listView1.Items.Add(lvt);
            }            
            listView1.Items[_index].EnsureVisible();//这句保证滚动条始终在最下
       }

------解决方案--------------------
我在.net里面是设置<%@ Page Language="C#" MasterPageFile="~/at1.master" MaintainScrollPositionOnPostback="true"