c# listview滚轮事件
滚轮滚动后,this.MouseWheel+=newSystem.Windows.Forms.MouseEventHandler(this.MouseWheel);pub...
滚轮滚动后,
this.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.MouseWheel);
public void MouseWheel(object sender, MouseEventArgs e)
{
目前情况是滚动时滚动列表里的东西还没拉到下面,就执行下面的代码了
希望滚轮-滚动后执行下面代码应该如何。等于是滚轮列表还没变化就执行了。
a();
}
public void a()
{
messagebox("1");
} 展开
this.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.MouseWheel);
public void MouseWheel(object sender, MouseEventArgs e)
{
目前情况是滚动时滚动列表里的东西还没拉到下面,就执行下面的代码了
希望滚轮-滚动后执行下面代码应该如何。等于是滚轮列表还没变化就执行了。
a();
}
public void a()
{
messagebox("1");
} 展开
展开全部
你可以在ListView的项目刷新的时候记录一下第一个可见项目的索引,再次刷新的时候如果索引改变了就是滚动条滚动结束了。
代码如下:
using System;
using System.Text;
using System.Windows.Forms;
namespace Test
{
public class ListViewEx : ListView
{
private int index = 0;
public event EventHandler Scroll;
public ListViewEx()
{
this.OwnerDraw = true;
}
protected override void OnDrawItem(DrawListViewItemEventArgs e)
{
ListViewItem item = this.TopItem;
if (item != null && item.Index != index)
{
index = item.Index;
if (Scroll != null)
{
Scroll(this, null);
}
}
e.DrawDefault = true;
base.OnDrawItem(e);
}
protected override void OnDrawColumnHeader(DrawListViewColumnHeaderEventArgs e)
{
e.DrawDefault = true;
base.OnDrawColumnHeader(e);
}
protected override void OnDrawSubItem(DrawListViewSubItemEventArgs e)
{
e.DrawDefault = true;
base.OnDrawSubItem(e);
}
}
}
使用:
private void Form1_Load(object sender, EventArgs e)
{
listViewEx1.Scroll += new EventHandler(listView1_Scroll);
}
private void listView1_Scroll(object sender, EventArgs e)
{
this.Text = listViewEx1.TopItem.Text;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询