首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WinForms ListView,记住Reload上的滚动位置

您好!您提到的问题是关于WinForms ListView控件的滚动位置在Reload后如何记住。以下是我的回答:

在WinForms中,ListView控件是一个常用的控件,用于显示项目列表。然而,当ListView控件的数据源发生变化时,滚动位置可能会丢失。为了记住滚动位置,可以使用以下方法:

  1. 在Reload之前,记住当前的滚动位置。
  2. 在Reload之后,将滚动位置恢复到之前的位置。

以下是一个简单的示例代码,演示如何在Reload之前和之后记住和恢复滚动位置:

代码语言:csharp
复制
// 记住滚动位置
int scrollPosition = listView.TopItem.Index;

// 在这里进行数据源的Reload操作

// 恢复滚动位置
listView.EnsureVisible(scrollPosition);

这个方法可以确保在Reload之后,滚动位置被正确地记住和恢复。

希望这个答案对您有所帮助!如果您有其他问题或需要更多的帮助,请随时告诉我。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

vue返回一页面时回到原先滚动位置

项目结束,测试时发现在首页商品列表中,向上滑动几页后点击进入详情,从详情页面返回商品列表时,页面回到了最顶部,测试不通过说是用户体验不好,要求从哪里点击进去返回该页面时回到原先滚动页面。...component: index, meta: { keepAlive: true } }, 这样在index.vue中,mounted方发只走一次,在浏览器实现了返回原来滚动位置目的...但是在手机上测试,发现没用, 解决手机上实现目的方法: //在页面离开时记录滚动位置 beforeRouteLeave (to, from, next) { this.scrollTop =...document.documentElement.scrollTop || document.body.scrollTop next() }, //进入该页面时,用之前保存滚动位置赋值 beforeRouteEnter

2.9K20

pywinauto,一款Win自动化利器!

:MFC、VB6、VCL、简单 WinForms 控件和大多数旧遗留应用程序 uia对应框架:WinForms、WPF、商店应用程序、Qt5、浏览器 如果无法知道要测试软件是属于哪种框架,可以使用...等,这都可以在inspect.exe看到,不过需要注意是inspect看到Name其实对应是window()title参数 WindowSpecification对象常用方法如下 举个栗子...其实BaseWrapper方法基本都是对ElementInfo进一步包装,我只列出部分方法,如下表 说明一下,每个控件元素都有对应Wrapper,所以上面的方法也不一定都用,需要根据实际情况进行测试区分...另外,比较有用click_input()和type_keys()这两个方法分别用于操作鼠标和键盘(输入),下面我会单独拿出来说一下 鼠标操作 鼠标点击肯定离不开点击位置,桌面就是一个坐标,左上角为坐标原点...表示滚动距离,大于0是向上滚动,小于0是向下滑动 举个栗子 键盘操作 键盘操作主要是按下键盘上按键,相关方法在keyboard模块,最最主要是send_keys()方法,第一个参数keys就是我们需要按下按键

6810

flutter仿BOSS直聘(二),大前端技术实现

在过去这段时间里,踊跃出了很多关于flutter技术文章和开源项目例子,基本每天都有,同比RN刚出来时,热情度远超RN。...这里就不过多占用篇幅了,本文主要还是讲flutter,对前端感兴趣会另外分享相关技术话题。 flutter端: 项目中使用以下组件,请记住一句咒语:flutter一切皆组件。...ListView大家应该都用过,只是需要记住一点,列表再跳转详情时需要记录当前列表滚动位置,只需加入以下代码即可: key: new PageStorageKey('key-name') Hero...大家都知道,flexibleSpace里CollapseMode.parallax属性可以在屏幕滚动时把title移动到appBar里,可实际,布局是定制,实现不了官方那种效果,于是通过监听ScrollController...并计算滚动位置方式修改state属性让appBartitle根据滚动位置显示隐藏。

1.9K20

Flutter | 滚动组件,ListView,GridVIew等

其实此属性本质是决定可滚动组件初始滚动位置是在 头 还是在 尾 ,如 false 时,初始位置在头,反之则在 尾 primary:指是否使用 widget 树中默认 PrimaryScrollController...在 ListView 中指定 itemExtent 比让子组件自己决定吱声长度会更有效,因为指定后,滚动系统可以提前知道列表长度,而无需每次构建子组件是都去计算一下,尤其是在滚动位置频繁变化时(滚动系统需要频繁去计算列表高度...没有应用基于 Sliver 懒加载模型 实际通过默认构造函数创建 ListView 和使用 SingleChildScrolLView + Column 方式没有本质区别,下面看一个栗子: ListView...当列表滚动到具体 index 位置时,会调用该构建起构建列表项。...Sliver 系列 Widget 比较多,这里就不过多介绍,我们只需要记住特点即可,需要时候查文档即可 上面说 大多数 Sliver 都和可滚动组件对应,是由于还有一些如 SliverPadding

8.4K20

基础篇章:关于 React Native 之 ListView 组件讲解

大家好,我是ListView,我是React Native大家族中基础组件中,一个核心组件。我可以高效展示垂直滚动变化数据列表,而且这个列表有一个特点就是结构和数据比较相似才可以哦。...和ScrollView不同是,我并不立即渲染所有元素,而是优先渲染屏幕可见元素。怎么样?是不是感觉我更聪明? 我有两个必须属性是dataSource和renderRow。...记住:rowHasChanged函数也是我必需属性。用于比较两行数据是否是同一个数据来判断某行数据是否变化了。...在我母亲制定官方介绍中,这么说:有一些性能优化使得我ListView可以滚动更加平滑,尤其是在动态加载可能很大(或者概念无限长)数据集时候: 只更新变化行 - 提供了rowHasChanged...粘性是指当它刚出现时,会处在对应小节内容顶部;继续下滑当它到达屏幕顶端时候,它会停留在屏幕顶端,一直到对应位置被下一个小节标题占据为止。

2K80

UITableView在Flutter中是什么?

当列表滚动到相应位置时,ListView会调用该方法创建对应子Widget。 itemCount,表示列表项数量,如果为空,则表示ListView为无限列表。...在滚动发生变化而列表项又很多时,这样计算就会非常频繁。 如果提前设置好itemExtent,ListView则可以计算好每一个列表项元素相对位置,以及自身视图高度,省去了无谓计算。...ListView组件控制器是ScrollController,我们可以通过它来获取视图滚动信息,更新视图滚动位置。...方法注册了滚动监听方法回调,根据当前视图滚动位置,判断当前是否需要展示“Top”按钮。...关联后才可以监听到滚动信息;通过NotificationListener则可以监听其子Widget中任意ListView,不仅可以得到这些ListView的当前滚动位置信息,还可以获取当前滚动事件信息

5.5K10

Flutter 小技巧之 ListView 和 PageView 各种花式嵌套

同方向 PageView 嵌套 ListView介绍完常规使用,接着来点不一样,在垂直切换 PageView 里嵌套垂直滚动 ListView , 你第一感觉是不是觉得不靠谱,为什么会有这样场景...,如下代码所示:通过 NeverScrollableScrollPhysics 禁止了 PageView 和 ListView 滚动效果通过顶部 RawGestureDetector VerticalDragGestureRecognizer...内      ///不在范围内一般是因为 ListView 已经滑动上去了,坐标位置和触摸位置不一致      if (renderBox?....嵌套 ListView 同方向滑动可以正常运行了,但是目前还有个两个小问题,从图示可以看到:在切换之后 ListView 位置没有保存下来产品要求去除 ListView 边缘溢出效果所以我们需要对...,​​///对 PageView 里 ListView 做 KeepAlive 记住位置class KeepAliveListView extends StatefulWidget {  final

1.9K20

Flutter开发-可滚动组件

,里面的widget可以在主轴滚动。...在ListView中,指定itemExtent比让子组件自己决定自身长度会更高效,这是因为指定itemExtent后,滚动系统可以提前知道列表长度,而无需每次构建子组件时都去再计算一下,尤其是在滚动位置频繁变化时...实际Sliver版滚动组件和非Sliver版滚动组件最大区别就是前者不包含滚动模型(自身不能再滚动),而后者包含滚动模型 ,也正因如此,CustomScrollView才可以将多个Sliver...this.keepScrollOffset = true,//是否保存滚动位置 ... }) 我们介绍一下ScrollController常用属性和方法: offset:可滚动组件当前滚动位置...示例 我们创建一个ListView,当滚动位置发生变化时,我们先打印出当前滚动位置,然后判断当前位置是否超过1000像素,如果超过则在屏幕右下角显示一个“返回顶部”按钮,该按钮点击后可以使ListView

4.5K20

PC端自动化测试(一)

应用程序可访问技术 支持控件访问技术 Win32 API(backend=“win32”) 默认backend MFC,VB6,VCL简单WinForms控件和大多数旧应用程序 MS UI Automation...API(backend=“uia”) WinForms,WPF,Store apps,Qt5,浏览器 进程数量 单进程 Application作用范围是一个进程 跨进程 Desktop作用范围可以跨进程...窗口最小化dlg.minimize() # 窗口恢复正常大小dlg.restore() # 查找窗口显示状态,最大化为1,正常为0status = dlg.get_show_state() # 获取当前窗口坐标位置...menu = dlg.Menumenu = dlg["Menu"]print(menu.print_control_identifiers()) # 查看Menu控件 file = menu.child_window...Toolbar 树状视图 Tree View 菜单项 MenuItem 静态内容 Static 复选框 CheckBox 组框 GroupBox 对话框 Dialog 头部内容 Header 列表显示控件 ListView

3.9K61

【Flutter】ListView 列表高级功能 ( ScrollController 拉加载更多 )

拉加载更多 ---- 在 FLutter 中 , 所有的列表都支持设置一个 ScrollController 类型参数 , 设置 ScrollController , 用于控制拉加载更多内容 ;...属性 ; /// 列表组件 child: ListView( controller: _scrollController, /// 设置拉加载更多 children: _buildList...可以获取当前最大可滚动位置 ; 如果上述两个值相等 , 那么说明已经滚动到列表最底部了 , 此时可以执行拉加载更多 /// 为滚动控制器添加监听 _scrollController.addListener...当前列表最大可滚动位置 /// 如果二者相等 , 那么就触发上拉加载更多机制 if (_scrollController.position.pixels ==.../ _scrollController.position.maxScrollExtent 当前列表最大可滚动位置 /// 如果二者相等 , 那么就触发上拉加载更多机制 if (_

1.9K20

android 有阻尼下拉刷新列表实现方法

adapterListView是一样,这个当然,因为我们实现下拉刷新功能并不需要修改数据适配器。...举个例子,有一个canvas和一个child view,本来 child view要画在(0,0)位置,于是呈现在我们眼前child view就是位于canvas顶部,但是如果在画之前我们将 canvas...向上移动100个像素单位,然后再将child view画在(0,0)位置,那么呈现在我们眼前child view位置将会是 位于canvas(0,100)位置。...如果此时PullToRefreshListView没有“滚动到顶部”,则不做任何处理,反之则将lastAction更新为ACTION_MOVE状态,更新isPulling变量,记录当前手指位置作为计算下拉距离起始位置...如何判断ListView是否已经滚动到顶部 下一步,我们如何判断ListView是否处于“滚动到顶部”状态呢?这一问题我PullToRefreshListViewonScroll中解决。

3.4K10

【Flutter实战】自定义滚动

正文 默认情况下,Flutter 滚动组件(比如 ListView)没有显示滚动条,使用 Scrollbar 显示滚动条: Scrollbar( child: ListView.builder(...实现自定义滚动条组件首先需要监听滚动组件 滚动位置,使用 NotificationListener 监听滚动位置: bool _handleScrollNotification(ScrollNotification...,其中 metrics.maxScrollExtent 表示当前滚动组件最大滚动距离,metrics.pixels 表示当前滚动位置。...通过这两个值计算滚动条在当前屏幕位置,通过 Stack 组件 将 ListView 和 自定义滚动条进行叠加显示: NotificationListener(...NotificationListener 监听到滚动事件联动,通过 Container alignment 属性控制滚动位置: Container( alignment: Alignment

2.3K10

Flutter可滑动组件

当列表滚动到具体index位置时,会调用该构建器构建列表项。 itemCount:列表项数量,如果为null,则为无限列表。...,即可以直接指定交叉轴item个数。...比如视图滚动到底部时,我们可能希望做上拉加载更多;比如滚动到一定位置时显示一个回到顶部按钮,点击回到顶部按钮,回到顶部;比如监听滚动什么时候开始,什么时候结束; 在Flutter中监听滚动相关内容由两部分组成...ListView、GridView组件控制器是ScrollController,我们可以通过它来获取视图滚动信息,并且可以调用里面的方法来更新视图滚动位置。...ScrollController可以通过initialScrollOffset设置初始位置,也可以监听到滚动位置,但无法监听到开始滚动与结束滚动事件。

7.1K30

Android自定义控件仿ios下拉回弹效果

网上有很多类似的文章,大多数还是继承listview来实现(主要是listview.addHeaderView()和listview.addFooterView在listview首尾添加view,也可以用上面的两个...在本文主要是给android线性布局(相对布局、帧布局)加上下拉或者拉回弹得效果。...) 4.在computeScroll()里面完成实际滚动 在开始具体实现之前,先得介绍几个要用到比较重要函数 mScroller.getCurrX() //获取mScroller当前水平滚动位置...mScroller.getCurrY() //获取mScroller当前竖直滚动位置 mScroller.getFinalX() //获取mScroller最终停止水平位置 mScroller.getFinalY...(int newY) //设置mScroller最终停留竖直位置,没有动画效果,直接跳到目标位置 //滚动,startX, startY为开始滚动位置,dx,dy为滚动偏移量, duration

85830

《Flutter》-- 6.高级组件

对象,控制滚动位置和监听滚动事件 this.physics,//用于接收一个ScrollPhysics对象,可以决定滚动组件响应用户操作方式 @required this.viewportBuilder...目前,可滚动组件中大部分组件都支持基于Sliver延迟构建模型,如ListView、GridView。...= true,//是否保持滚动位置 this.debugLabel, }) 当keepScrollOffset属性值为true时,可滚动组件滚动位置会被存储到PageStorage中,当可滚动组件重新创建时可以使用...ScrollController组件还有如下属性和方法: offset:可滚动组件当前滚动位置; jumpTo():用于跳转到指定位置; animateTo():跳转到指定位置,跳转时会执行设置动画...接收滚动事件参数类型为ScrollNotification,它提供了一个metrics属性,该属性包含了当前可视窗口和滚动位置等信息。

10.6K20

Android开发(14) 可以横向滚动ListView(固定列头)

ListView每行(row)分为 两部分,不滚动和可滚动区域。比如本demo第一列,就是静态。而后面的所有列都是可以滚动。 2.2....那么我们需要监听 列头 (控件)滚动变化消息(事件),并将消息广播给所有的 数据行。这些数据行收到消息后,调整自己滚动位置以保持和 列头 滚动距离一致。...捕获 数据行 区 控件(该控件其实就是ListView控件 )OnTouch事件,不处理,同样分发给 “列头里滚动部分控件”。...每次 滚动后,都通知给 观察者。观察者再通知给它订阅者(那些需要同时滚动行里面的 滚动控件)。 3.4. 当ListView创建行时,让这些行都订阅 一步 观察者。...当 收到消息后,调整自身滚动位置以保持和 列头 滚动位置一致。 ---- 代码比较多,就不贴了。请下载: 源代码下载。

1.7K00

Flutter如何设计一个高性能,多功能ListView组件

虽然我们号称多功能,但是组件本质任然只是一个ListView,所以提供能力应该是围绕可以滚动列表出发。结合闲鱼文章与个人日常使用,我认为ListView还欠缺下面几种能力。...1、滚动到指定index 我们在Flutter中可以通过使用ScrollController控制ListView滚动到指定位置,但这里位置是基于offset(偏移像素)而非index,实际开发中我们常常会用到跳转指定...当前,我们往往会在itembuild函数或者initState中进行,但由于ListView预加载和垃圾回收机制,一些未出现在屏幕会被提前曝光。...2、缓存每个item高度,指定滚动index时候去计算需要滚动offset 。...我们把itme进行排列,将ListView想象成一个窗口。滑动时候基于offset改变窗口位置以显示不同item。

7310

ListView使用技巧-更新中

@Override public int getCount() { return mDataList.size(); } //指定位置数据源对象...隐藏ListView滚动条 3.隐藏ListView滚动条 默认ListView滚动时,在右边会显示滚动条,指定当前滚定位置。...我们可以通过scrollbars属性来控制ListView滚动状态。特别的,当scrollbars设置为none时,ListView无论滚动还是不滚动,就都不会出现滚动条了。...case 2:// 隐藏ListView滚动条 LogUtils.d(position); // false-一直都显示 true-不活动时隐藏...取消ListViewItem点击效果 当点击ListView某一项Item时,系统默认会出现一个点击效果,在Android5.X是一个波纹效果,而在5.X以下是一个改变背景颜色效果,但是我们可以通过修改

92730
领券