私はこのようなデータグリッドビューを持っています....下の画像ではうまくいきます...
垂直サイドバーにイベントを接続する必要があります..
つまり、スクロールバーの上矢印をクリックすると、何かしたい...
そのスクロールバーの下矢印をクリックすると、何かしたい...
より具体的には、垂直スクロールバーの上矢印をクリックしたときに最初の上位レコードの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); このイベントには参加しません...
誰でもこれについて助けてくれますか...