如何在dataGridView的Sroll事件处理程序方法中获取ScrollEventType.EndScroll?
void dgvMapper_Scroll(object sender, ScrollEventArgs e)
{
if (e.Type == ScrollEventType.EndScroll) {}
}
答案 0 :(得分:1)
DGV中的大多数垂直滚动都是因为用户正在输入数据行或按键盘上的上/下箭头键。对此没有“结束滚动”动作。如果这不是问题,您可以使用以下代码检测用户直接操作滚动条:
using System;
using System.Windows.Forms;
class MyDataGridView : DataGridView {
public event EventHandler EndScroll;
protected void OnEndScroll(EventArgs e) {
EventHandler handler = EndScroll;
if (handler != null)
handler(this, EventArgs.Empty);
}
protected override void WndProc(ref Message m) {
base.WndProc(ref m);
if (m.Msg == 0x115) {
if ((ScrollEventType)(m.WParam.ToInt32() & 0xffff) == ScrollEventType.EndScroll) {
OnEndScroll(EventArgs.Empty);
}
}
}
}
将其粘贴到新类中。编译。将新控件从工具箱顶部拖放到表单上。