[英]hooking up events to vertical scroll bar upper arrows and down arrows in data grid view using c#
我有这样的数据网格视图....在下面的图像中,那很好用...
我需要在垂直边栏上挂一个事件。
我的意思是,如果我单击滚动条中的上方箭头,我想做些什么...
如果我单击该滚动条中的向下箭头,我想做某事...
更具体地说,当我单击垂直滚动条中的上箭头时,我想获取第一个上条记录的ID。
我该怎么做...,我正在使用winforms
任何人都可以帮忙....
提前谢谢了
我找到了这个,但是我不知道如何在我的页面中实现
using System.Reflection;
using System.Windows.Forms;
bool addScrollListener(DataGridView dgv)
{
bool ret = false;
Type t = dgv.GetType();
PropertyInfo pi = t.GetProperty("VerticalScrollBar", BindingFlags.Instance | BindingFlags.NonPublic);
ScrollBar s = null;
if (pi != null)
s = pi.GetValue(dgv, null) as ScrollBar;
if (s != null)
{
s.Scroll += new ScrollEventHandler(s_Scroll);
ret = true;
}
return ret;
}
void s_Scroll(object sender, ScrollEventArgs e)
{
// Hander goes here..
}
我已经做到了
private void s_Scroll(object sender, ScrollEventArgs e)
{
if (e.ScrollOrientation == ScrollOrientation.VerticalScroll)
{
if (e.Type == ScrollEventType.ThumbPosition)
{
if (e.Type == ScrollEventType.SmallIncrement)
{
int i = dgvMembers.FirstDisplayedScrollingRowIndex;
int idemebers =Convert.ToInt32(dgvMembers.Rows[i].Cells["Id"].Value.ToString());
getMemberInfo(i, idemebers);
}
if (e.Type == ScrollEventType.SmallDecrement)
{
int i = dgvMembers.FirstDisplayedScrollingRowIndex;
int idemebers = Convert.ToInt32(dgvMembers.Rows[i].Cells["Id"].Value.ToString());
getMemberInfo(i, idemebers);
}
}
}
}
但是此事件不会触发s.Scroll + = new ScrollEventHandler(s_Scroll); 它不会进入此事件...
任何人都可以帮忙...
您应该可以使用已发布的代码。 您需要做的就是在某处调用addScrollListener
(例如,在InitializeComponent
之后的构造函数中)
public Form1()
{
InitializeComponent();
// Replace dataGridView1 with the name of your DataGridView
addScrollListener(dataGridView1);
}
// addScrollListener code goes here
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.