Reputation: 1631
I wish to know whether a user is scrolling the DataGridView.
While the user is scrolling the DataGridView I wish to suspend a running thread and resume this thread as soon as the user stops scrolling.
Any help will be deeply appreciated from heart.
Thanks a lot :)
Update :
For my work regarding this,code is here :- Updating DataGridView via a thread when scrolling
Upvotes: 9
Views: 899
Reputation: 2513
public class DataGridViewEx : DataGridView
{
private const int WM_HSCROLL = 0x0114;
private const int WM_VSCROLL = 0x0115;
private const int WM_MOUSEWHEEL = 0x020A;
public event ScrollEventHandler ScrollEvent;
const int SB_HORZ = 0;
const int SB_VERT = 1;
public int ScrollValue;
[DllImport("User32.dll")]
static extern int GetScrollPos(IntPtr hWnd, int nBar);
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (m.Msg == WM_VSCROLL ||
m.Msg == WM_MOUSEWHEEL)
if (ScrollEvent != null)
{
this.ScrollValue = GetScrollPos(Handle, SB_VERT);
ScrollEventArgs e = new ScrollEventArgs(ScrollEventType.ThumbTrack, ScrollValue);
this.ScrollEvent(this, e);
}
}
}
Add your suspend code to Handler of the ScrollEvent event
Upvotes: 2
Reputation: 3084
Please see here, this is an example using a ListView but it can easily be adapted to a DataGridView.
Upvotes: 3