2010-10-05 6 views
9

Je souhaite savoir si un utilisateur fait défiler le DataGridView.Comment savoir si l'utilisateur fait défiler la vue de données

Pendant que l'utilisateur fait défiler le DataGridView, je souhaite suspendre un thread en cours d'exécution et reprendre ce thread dès que l'utilisateur arrête de défiler.

Toute aide sera grandement appréciée du coeur.

Merci beaucoup :)

Mise à jour:

Pour mon travail à ce sujet, le code est ici: - Updating DataGridView via a thread when scrolling

+0

+1 J'ai jamais eu besoin d'agir à ce jour sur le défilement des événements, mais si je fais un jour, votre question est susceptible de être utile compte tenu de sa/ses réponse (s). –

Répondre

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

Ajoutez votre code pour suspendre gestionnaire de l'événement ScrollEvent

+0

Merci pour votre réponse. J'ai upvoted you ou answer.But je suis un codeur de novice et ne pourrais pas obtenir où ajouter ce code aider gentiment .... Voici mon code: - http://stackoverflow.com/questions/3766784/problem-in- update-datagridview-through-a-thread-when-scrolling.S'il vous plaît laissez-moi savoir où implémenter ce code et si vous pouvez fournir une démo ce serait génial ...... –

+1

Vous devez créer une nouvelle classe dans votre projet et coller mon extrait de code. Ensuite, dans le concepteur de votre formulaire à la place DataGridView dataagrid = new DataGridView(); vous devez écrire ensuite: DataGridView dataagrid = new DataGridViewEx(); – zabulus

3

S'il vous plaît voir ici, ceci est un exemple en utilisant un ListView mais il peut facilement être adapté à un DataGridView.

ListView onScroll event

+0

+1 J'ai appris quelque chose de nouveau aujourd'hui compte tenu de votre lien! –

+0

Merci pour votre réponse. J'ai upvoted you ou answer.But je suis un codeur de novice et ne pourrais pas obtenir où ajouter ce code aider gentiment .... Voici mon code: - http://stackoverflow.com/questions/3766784/problem-in- update-datagridview-via-un-thread-lors du défilement. S'il vous plaît laissez-moi savoir où mettre en œuvre ce code et si vous pouvez fournir une démo, ce serait bien ...... –

Questions connexes