Вы можете знать, если пользователь прокручивать DataGridView
через Scroll
событие, вы можете знать, если пользователь держит мышь вниз на Thumb
и прокрутить через его ScrollEventArgs
как это:
private void dataGridView1_Scroll(object sender, ScrollEventArgs e){
if(e.ScrollOrientation == ScrollOrientation.VerticalScroll &&
(e.Type == ScrollEventType.LargeIncrement || e.Type == ScrollEventType.LargeDecrement)){
//your code here
}
}
код, приведенный выше почти работает но каким-то образом вы можете изменить VerticalScroll.Value
(этого не существует) с программным обеспечением Large Change
, событие будет запущено, даже если пользователь не удерживает мышь на вертикальном пальце. Таким образом, мы можем добавить условие MouseButtons == MouseButtons.Left
, чтобы заставить его работать лучше:
private void dataGridView1_Scroll(object sender, ScrollEventArgs e){
if(e.ScrollOrientation == ScrollOrientation.VerticalScroll && MouseButtons == MouseButtons.Left &&
(e.Type == ScrollEventType.LargeIncrement || e.Type == ScrollEventType.LargeDecrement)){
//your code here
}
}
Другой короткий способ обнаружить, если пользователь держит мышь вниз везде на вертикальной полосе прокрутки (как Thumb
и Arrow Repeat button
), используя HitTest
метод, вы можете добавить дополнительный код сделать его работу более надежно, так что мы не пропустить какое-то свиток с коммунистической программой реального действием пользователя прокрутки:
private void dataGridView1_Scroll(object sender, ScrollEventArgs e){
Point p = dataGridView1.PointToClient(MousePosition);
if (dataGridView1.HitTest(p.X, p.Y).Type == DataGridViewHitTestType.VerticalScrollBar){
//Your code here
}
}
Mr Universe, если мой ответ помог вам, пожалуйста, примите его, если у вас есть какие-либо дополнительные вопросы я Вот –