views:

46

answers:

2

Hi Experts,

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 :- http://stackoverflow.com/questions/3766784/problem-in-updating-datagridview-via-a-thread-when-scrolling

+3  A: 

Please see here, this is an example using a ListView but it can easily be adapted to a DataGridView.

http://stackoverflow.com/questions/1176703/listview-onscroll-event/1182232

kyndigs
+1 I have learned something new today given your link!
Will Marcouiller
Thanks for your answer. I have upvoted yor answer.But I am a novice coder and couldn't get where to add this code kindly help....Here is my code :- http://stackoverflow.com/questions/3766784/problem-in-updating-datagridview-via-a-thread-when-scrolling .Please let me know where to implement this code and if you can provide demo it would be great......
Ankush Roy
+1  A: 
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

zabulus
Thanks for your answer. I have upvoted yor answer.But I am a novice coder and couldn't get where to add this code kindly help....Here is my code :- http://stackoverflow.com/questions/3766784/problem-in-updating-datagridview-via-a-thread-when-scrolling .Please let me know where to implement this code and if you can provide demo it would be great......
Ankush Roy
You need to create new classin your project and paste my code snippet to it. Then in designer of your form instead DataGridView datagrid = new DataGridView(); you must write next: DataGridView datagrid = new DataGridViewEx();
zabulus