c# winform中怎么记住listview滚动条的位置??

时间:2022-04-27 10:26:32
在listview 中有很多数据,出现了滚动条,这些数据有时候要更新。
更新完后,返回到listview 就会刷新数据,然后继续选中之前的数据。。
当我把滚动条移动打下面,listview更新后。。。 滚动条就跑到最上面去了。。
怎么记住更新前的滚动条位子,更新后再把滚动条定位到之前的位子??
空间不能访问了,图片后补上。。

13 个解决方案

#1


该回复于2011-03-12 09:22:39被版主删除

#2


c# winform中怎么记住listview滚动条的位置??

求解决方案。。。

#3


记住当时选中记录的索引,刷新后要通过发消息(api函数sendmessage,发送wm_scroll消息)去控制滚动

#4


图不是很清楚 保存上次滚动条的位置

用一个session来存他的索引。绑定之后在把session中的索引赋给listview中选中的索引


listview.setSelection(rowNumber)。

参考

参考

#5


winform 哪里有session。。

#6


3L 求具体方法,思路我是懂的,就是不知道怎么实现。。

#7


向下滚动

        [DllImport("user32")]
        private static extern int SendMessage(IntPtr hWnd,int Msg,int wParam,int lParam);



        private void button1_Click(object sender, EventArgs e)
        {
            SendMessage(listView1.Handle, 0x0115, 1, 0);
        }

#8


该回复于2011-03-14 11:24:37被版主删除

#9


3L 是记录listview选中行的索引吗?

#10



SendMessage(listView1.Handle, 0x0115, 1, 0);

哪个参数是索引?


#11



SendMessage(listView1.Handle, 0x0115, 1, 0);

我试了一下,运行一下这个代码,滚动条就滚动一点的。。
蛋似我怎么知道要运行多少下呢。。  

#12


设置listview的topitem

#13


记住当前的listview.topitem.index ,下次设置
listciew.topitem = listview.item【listview.topitem.index 】即可

#1


该回复于2011-03-12 09:22:39被版主删除

#2


c# winform中怎么记住listview滚动条的位置??

求解决方案。。。

#3


记住当时选中记录的索引,刷新后要通过发消息(api函数sendmessage,发送wm_scroll消息)去控制滚动

#4


图不是很清楚 保存上次滚动条的位置

用一个session来存他的索引。绑定之后在把session中的索引赋给listview中选中的索引


listview.setSelection(rowNumber)。

参考

参考

#5


winform 哪里有session。。

#6


3L 求具体方法,思路我是懂的,就是不知道怎么实现。。

#7


向下滚动

        [DllImport("user32")]
        private static extern int SendMessage(IntPtr hWnd,int Msg,int wParam,int lParam);



        private void button1_Click(object sender, EventArgs e)
        {
            SendMessage(listView1.Handle, 0x0115, 1, 0);
        }

#8


该回复于2011-03-14 11:24:37被版主删除

#9


3L 是记录listview选中行的索引吗?

#10



SendMessage(listView1.Handle, 0x0115, 1, 0);

哪个参数是索引?


#11



SendMessage(listView1.Handle, 0x0115, 1, 0);

我试了一下,运行一下这个代码,滚动条就滚动一点的。。
蛋似我怎么知道要运行多少下呢。。  

#12


设置listview的topitem

#13


记住当前的listview.topitem.index ,下次设置
listciew.topitem = listview.item【listview.topitem.index 】即可