none
datagridview如何判定水平滚动条向右还是向左移动 RRS feed

答案

  • 你好!
         可以利用FirstDisplayedScrollingColumnIndex这个属性来判断,在滚动之前把这个属性的值记录在一个成员变量中,在滚动之后,如果当前的 FirstDisplayedScrollingColumnIndex比过去的大,说明向左滚动,否则向右滚动!
         如果是相等的情况,可以比较过去的
    FirstDisplayedScrollingColumnHiddenWidth和现在的FirstDisplayedScrollingColumnHiddenWidth值,如果现在的值更大,则向左滚动,否则向右滚动!
    周雪峰
    2010年3月5日 8:20
    版主

全部回复

  •  
       private void dataGridView1_Scroll(object sender, ScrollEventArgs e)
            {
    
                if (this.dataGridView1.HorizontalScrollingOffset > this.dataGridView1.FirstDisplayedScrollingColumnHiddenWidth)
                {
                  
                    Console.WriteLine("right");
                }
                else
                {
           
                    Console.WriteLine("left");
                }
    }

    努力+方法=成功
    2010年3月5日 6:00
  • 你好!
         可以利用FirstDisplayedScrollingColumnIndex这个属性来判断,在滚动之前把这个属性的值记录在一个成员变量中,在滚动之后,如果当前的 FirstDisplayedScrollingColumnIndex比过去的大,说明向左滚动,否则向右滚动!
         如果是相等的情况,可以比较过去的
    FirstDisplayedScrollingColumnHiddenWidth和现在的FirstDisplayedScrollingColumnHiddenWidth值,如果现在的值更大,则向左滚动,否则向右滚动!
    周雪峰
    2010年3月5日 8:20
    版主
  • 在滚动之前把这个属性的值记录在一个成员变量中,得在哪个事件中记录
    dyx9010
    2010年3月5日 12:16
  • 在上一次滚动的时候记录咯,初始值一般是最左边的0吧,具体多少调试一下看看就知道了

    不过滚动的事情都比较难办,万一拖着滚动条来回移动,那事件触发的次数可就多的数不清了
    霸王
    2010年3月5日 12:35
  • 你好!
         最开始把那个变量设置为0,或是你的程序中最开始的时候显示在最左边的那个列索引!
         每次滚动事件结束的时候用新值更新这个变量!
    周雪峰
    2010年3月5日 14:41
    版主
  • 恩,这个没弄过,学习一下


    咯咯
    2010年3月5日 15:17