例如ListView添加了一万条数据,在不拖动滚动条的情况下,可显示20条数据.在随便拉动滚动条的情况下,如何得到这20条显示出来的ListViewItem呢??
解决方案 »
- 如何让gridview在页面重载时不自动刷新
- 简单
- c#中的datagridview列顺序问题?
- 有关 cmmd.ExecuteReader()的问题
- 急!!!急!!!小女子请教各位前辈怎么实现用hash表存放存储过程的参数列表,谢了!
- 请问如何在程序中判断WMI服务是否启动,如果没有启动的话,如何启动它?
- 关于HttpWebRequest的响应速度问题
- 请大家帮忙看看,谢谢!关于.net中的post[求助]
- 求前几天一帖地址:如何用C#实现ping命令
- 求一个完整的c#入门经典第六版 pdf书下载地址
- 怎样实现tabcontral控件中tabpage1跳转到tabpage3
- 考考你,教教我。这个方法是dal?bll?肯定不是dbutility。
这个方法,通过定位坐标来取得item,然后头尾两个item之间的items就是你想要的了。GetItemAt Retrieves the item at the specified location.
自己上MSDN上查,这个是LISTVIEW的方法。
下面是我用GetItemAt做的一个方法.#region " 获取可见行数据集 "
public List<ListViewItem> GetShowListViewItems()
{
List<ListViewItem> result = new List<ListViewItem>();
ListViewItem lvi = null;
int defaultY = 30;//初始Y坐标,
do
{
lvi = base.GetItemAt(10, defaultY);
if (null != lvi)
{
defaultY += lvi.Bounds.Height;
result.Add(lvi);
}
} while (null != lvi);
return result;
}
#endregion
{
List<ListViewItem> result = new List<ListViewItem>();
ListViewItem lvi = base.TopItem;
do
{
if (null != lvi)
{
result.Add(lvi);
if (lvi.Index + 1 < base.Items.Count)
{
lvi = base.Items[lvi.Index + 1];
}
else
{
lvi = null;
}
}
} while (null != lvi && lvi.Bounds.Bottom < this.Height);
return result;
}