现在要做一个功能,比如我的数据源有10000条数据,通过屏幕判断当前屏幕可以显示20条,我在拖动滚动条和点击滚动条的上下按钮或则鼠标的滚轮时都需要对当前屏幕的20条数据进行判断然后做其他操作。自己写事件的话会有问题,比如我点击滑块进行拖动时会调用无数次事件。如何才能只获得滑块滚动停止后的事件,一次点击或则一次拖动或则一次滚轮只调用一次事件?
const int WM_VSCROLL = 0x0115;
const int WM_HSCROLL = 0x0114; protected override void WndProc(ref Message m)
{
if (m.Msg == WM_VSCROLL)
{
OnVScroll(this, new EventArgs());
this.Refresh();
}
else if (m.Msg == WM_HSCROLL)
{
OnHScroll(this, new EventArgs());
this.Refresh();
} base.WndProc(ref m);
}
const int WM_VSCROLL = 0x0115;
const int WM_HSCROLL = 0x0114; protected override void WndProc(ref Message m)
{
if (m.Msg == WM_VSCROLL)
{
OnVScroll(this, new EventArgs());
this.Refresh();
}
else if (m.Msg == WM_HSCROLL)
{
OnHScroll(this, new EventArgs());
this.Refresh();
} base.WndProc(ref m);
}
解决方案 »
- 菜鸟问题:如何获得timer事件中经过变化的值
- 需要登录的网站, 应该如何用WebClient下载网页数据啊? 谢谢!
- 怎样给引用类型只传值??
- 操作系统相异,导出EXCEL格式相异,寻解决~~
- 求一个 System.Windows.Forms.WebBrowser的使用方法。。急急急急!!!!!!!!!!
- 曾记得大侠(九品)用c#写了一个论谈,他还提供源码,哪位还记得它的地址?
- 另贴《Visual C#.NET应用编程150例》电子书及源码
- winform程序中的Treeview如何改变大小
- 帮我一下
- 孟子E章大哥求教:如何往WorkflowTracking数据库中写自己的一些内容
- 怎么让textbox 不可以编辑
- 请教大家一个小问题,用C#访问SQL Server数据库
{
System.Diagnostics.Stopwatch sp = new System.Diagnostics.Stopwatch();
sp.Start();
for (int i = 0; i < 100000; i++)
{
ListViewItem lvi = new ListViewItem(new string[] { i.ToString(), "asd" });
lvi.Name = i.ToString();
datas.Add(lvi);
} this.listView2.VirtualListSize = 100000;
this.listView2.RetrieveVirtualItem += new RetrieveVirtualItemEventHandler(listView_RetrieveVirtualItem);
} private List<ListViewItem> datas = new List<ListViewItem>(); void listView_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e)
{ if (this.datas == null || this.datas.Count == 0)
{
return;
} e.Item = this.datas[e.ItemIndex];
if (e.ItemIndex == this.datas.Count)
{
this.datas = null;
}
}