1

私はこのようなデータグリッドビューを持っています....下の画像ではうまくいきます...

垂直サイドバーにイベントを接続する必要があります..

つまり、スクロールバーの上矢印をクリックすると、何かしたい...

そのスクロールバーの下矢印をクリックすると、何かしたい...

より具体的には、垂直スクロールバーの上矢印をクリックしたときに最初の上位レコードの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); このイベントには参加しません...

誰でもこれについて助けてくれますか...

4

1 に答える 1

0

投稿したコードを使用できるはずです。あなたがする必要があるのは、addScrollListenerどこかで呼び出すことだけです(たとえば、コンストラクタの after でInitializeComponent

  public Form1()
  {
     InitializeComponent();
     // Replace dataGridView1 with the name of your DataGridView
     addScrollListener(dataGridView1);  
  }

  // addScrollListener code goes here
于 2011-10-14T16:31:18.763 に答える