C#Winfom如何获取控件的滚动条位置并判断是否到达底部

问题描述

如下代码:[DllImport("user32.dll",EntryPoint="GetScrollPos")]publicstaticexternintGetScrollPos(IntPtrhwnd,intnBar);privatevoidbutton1_Click(objectsender,EventArgse){//一.得到垂直滚动条的位置inti=GetScrollPos(this.listView1.Handle,1);//二.难点在这一步,如何取得listView1控件的滚动条区域的长度intb=1;//三.判断if(i==b){MessageBox.Show("到底部了");}}通过第一步可以获取到当前滚动条的位置,难点在第二部,如何知道这个位置已经位于该控件的底部了呢?我想实现一个效果,就是实现文本框的刷新,如果滚动条位置位于底部了,我就自动将焦点更新到最新的文本,如果滚动条位置并非在底部(正在拖动滚动条查看前面的数据),我就不更新焦点。想实现这个效果就必须要能够实时判断滚动条是否位于底部了,请教各位大神。

解决方案

解决方案二:
把滚动条拉到底部,看下GetScrollPos(this.listView1.Handle,1)

的值len,如果i小于len就是没到底咯
解决方案三:
引用1楼lovelj2012的回复:

把滚动条拉到底部,看下GetScrollPos(this.listView1.Handle,1)

的值len,如果i小于len就是没到底咯

我的意思就是不滚动到底部就能获取到i的值
解决方案四:
我的建议,和你不滚到底部,没冲突啊。你先让它拉到底部,获取这个时候的值,比如说len。也就是说只要GetScrollPos(this.listView1.Handle,1)不等于len,肯定是没到底部的啦。
解决方案五:
滚动条到底的时候,好像当前位置值+最大的步移量=长度,

时间: 2024-10-28 19:52:33

C#Winfom如何获取控件的滚动条位置并判断是否到达底部的相关文章

在windows窗体上滚动条控件的起始位置是怎么自定义的?

问题描述 在windows窗体上滚动条控件的起始位置是怎么自定义的? 在windows窗体上滚动条控件的起始位置是怎么自定义的?怎么修改窗口上滚动条的布局,在上面插入快捷定位的按钮呢? 解决方案 Win32窗体的所有控件都认为是窗体,所以创建一个自定义的控件跟创建一个win32的窗体是相似的 参考此篇文章http://www.codeproject.com/KB/miscctrl/custbutton001.aspx 先通过RegisterClassEx注册一个window class,然后就在

JQ 动态添加行,获取控件 ID

问题描述 JQ 动态添加行,获取控件 ID 做二级联动 第二个下拉框获取的Id不正确 求大神帮忙! 解决方案 给你的combotree增加id配置,在onSelect中通过options得到配置的id,而不是直接引用全局变量rowCount onSelect:function(rec){ var rowCount=$(this).combotree('options').id;///////// //....其他的代码

list control控件水平滚动条的跟踪问题

问题描述 list control控件水平滚动条的跟踪问题 我设计的list control控件有多列输出,当水平滚动条向右拖动时,列表不会同时向右跟踪,仅显示最开始的状态,不知道应该如何对水平滚动条进行操作.请指教,急!补充:我定义了一个定时器,0.1秒刷新一次list,相当于鼠标拖动后又被刷新到初始位置,需要想办法显示到滚动条拖动的位置

控件坐标-.net 怎么获取控件在屏幕中的坐标

问题描述 .net 怎么获取控件在屏幕中的坐标 看网上用函数:Point p = Button2.PointToScreen(Button2.Location); 但是老是提示错误,我引用了using System.Drawing;using System.Windows.Forms;请问我少引用了什么吗?还是.net控件不支持PointToScreen这个函数? 解决方案 你这个代码是桌面程序的,不是asp.net的.asp.net只能获得相对文档的坐标,而不能获得相对屏幕的坐标,除非你在客户

datepicker-silverlight的DataGrid中添加DatePicker控件使用滚动条滚动数据有误

问题描述 silverlight的DataGrid中添加DatePicker控件使用滚动条滚动数据有误 silverlight的DataGrid中添加DatePicker控件,初始设定DatePicker中的时间,连续使用滚动条滚动,初始设定DatePicker的值会随机改变. <sdk:DataGrid Grid.Row="1" HorizontalAlignment="Stretch" Name="dataGrid1" Vertical

请教如何获取控件的内存数据

问题描述 请教如何获取控件的内存数据 比如按钮,按钮在内存中是有大小的,如何获取按钮的内存数据,从而从这些数据中匹配数据 解决方案 FindWindow找到按钮的句柄,用GetWindowRect获取它的大小. 解决方案二: 正规的方法,应该是支持控件提供的接口去获取,而不是直接读取控件的内存. 当然,如果你找到控件的内存地址.且知道控件的数据结构,自己读完全是没有问题的.因为控件,一般也就是一个类!

如何通过C#的反射机制,通过控件名获取控件(并且这个控件本身是动态生成的)

问题描述 我知道可以通过下面这种方式通过控件名获取控件TextBoxtextbox=(TextBox)this.GetType().GetField("Textbox的名称",System.Reflection.BindingFlags.NonPublic|System.Reflection.BindingFlags.Instance|System.Reflection.BindingFlags.IgnoreCase).GetValue(this);但是,如果这个控件是自己用代码生成的

view-有关获取控件引用的问题(新手求助)

问题描述 有关获取控件引用的问题(新手求助) 怎么在一个activity获得另一个activity的控件引用????????????? 解决方案 新手总会问这样的问题的!要耐心点 解决方案二: 需要被引用的控件向外暴露访问对象,或使用static修饰使其变为全局变量 解决方案三: 你的需求是什么?一定要获取另外一个activity的控件么? 解决方案四: 建议使用fragment 解决方案五: 没必要啊...Activity只是显示当前界面而已 解决方案六: 单例模式,还有EventBus 解决

windows api 通过句柄获取控件在窗口的坐标问题?

问题描述 windows api 通过句柄获取控件在窗口的坐标问题? NativeRECT sRECT = new NativeRECT(); //get 屏幕 RECT GetWindowRect(hWnd, out sRECT); 问题1:该方法有时获去到的值是负数 ? 求解答? ScreenToClient(hWnd, ref xx); 问题2:该方法获取到的值 一直是0 //结构体布局 本机位置 [StructLayout(LayoutKind.Sequential)] public s