DataGridView в ScrollEventType.EndScroll - PullRequest
0 голосов
/ 21 декабря 2009

Как получить ScrollEventType.EndScroll в методе обработчиков событий Sroll для dataGridView?

void dgvMapper_Scroll(object sender, ScrollEventArgs e)    
{        
    if (e.Type == ScrollEventType.EndScroll) {}     
}

Ответы [ 2 ]

1 голос
/ 21 декабря 2009

Большинство вертикальной прокрутки в DGV происходит, потому что пользователь вводит строки данных или нажимает клавиши со стрелками вверх / вниз на клавиатуре. Для этого не существует действия «end-scroll». Если это не проблема, вы можете обнаружить пользователя, непосредственно работающего с полосой прокрутки, с помощью этого кода:

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);
            }
        }
    }
}

Вставьте это в новый класс. Компиляция. Перетащите новый элемент управления из верхней части панели инструментов на форму.

0 голосов
/ 16 августа 2016

Вы можете использовать

if(e.Type == ScrollEventType.ThumbPosition)
// Do something
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...