[.NET]ListView的Scroll事件

来源:互联网 发布:js 判断 字符串 empty 编辑:程序博客网 时间:2024/05/19 03:29

是的,就是这样。微软没有给ListView加上Scroll事件。这已经作为一项意见提交给了微软,在dotNET v2.0里面有望加上Scroll事件。
不过现在我们怎么办?
我们现在只能自己动手,丰衣足食了。

例子代码:
 
class MyListView : ListView
{
 public event EventHandler HScroll;
 public event EventHandler VScroll;

 MyListView()
 {
  this.HScroll += new EventHandler(OnHScroll);
  this.VScroll += new EventHandler(OnVScroll);
 }

 const int WM_HSCROLL = 0x0114;
 const int WM_VSCROLL = 0x0115;
 protected override void WndProc(ref Message m)
 {
  if(m.Msg == WM_HSCROLL)
  {
   OnHScroll(this, new EventArgs());
  }
  else if(m.Msg == WM_VSCROLL)
  {
   OnVScroll(this, new EventArgs());
  }

  base.WndProc (ref m);
 }

 virtual protected void OnHScroll(object sender, EventArgs e)
 {
 }

 virtual protected void OnVScroll(object sender, EventArgs e)
 {
 }
}