2010-10-05 27 views
9

Tôi muốn biết liệu người dùng có đang cuộn DataGridView hay không.Làm thế nào để biết liệu người dùng có đang cuộn khung dữ liệu

Trong khi người dùng đang cuộn DataGridView, tôi muốn tạm ngừng chuỗi đang chạy và tiếp tục chuỗi này ngay sau khi người dùng ngừng cuộn.

Bất kỳ trợ giúp nào sẽ được đánh giá cao từ trái tim.

Thanks a lot :)

Cập nhật:

Đối với công việc của tôi về vấn đề này, đang ở đây: - Updating DataGridView via a thread when scrolling

+0

1 Tôi chưa bao giờ cần thiết để hành động di chuyển các sự kiện cho đến nay, nhưng nếu tôi làm một ngày nào đó, câu hỏi của bạn có khả năng hữu ích cho (các) câu trả lời của nó. –

Trả lời

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

Thêm đình chỉ của bạn mã để Handler của sự kiện ScrollEvent

+0

Cảm ơn câu trả lời của bạn. Tôi đã upvoted yor câu trả lời.Nhưng tôi là một coder mới làm quen và không thể có được nơi để thêm mã này vui lòng giúp đỡ .... Đây là mã của tôi: - http://stackoverflow.com/questions/3766784/problem-in- cập nhật-datagridview-via-a-thread-khi-scrolling.Xin vui lòng cho tôi biết nơi để thực hiện mã này và nếu bạn có thể cung cấp bản demo nó sẽ là tuyệt vời ...... –

+1

Bạn cần phải tạo mới classin dự án của bạn và dán đoạn mã của tôi cho nó. Sau đó, trong thiết kế của form của bạn thay vì DataGridView datagrid = new DataGridView(); bạn phải viết tiếp theo: DataGridView datagrid = new DataGridViewEx(); – zabulus

3

Xin vui lòng xem ở đây, đây là một ví dụ sử dụng một ListView nhưng nó có thể dễ dàng được thích nghi với một DataGridView.

ListView onScroll event

+0

+1 Tôi đã học được điều gì đó mới mẻ hôm nay cho liên kết của bạn! –

+0

Cảm ơn câu trả lời của bạn. Tôi đã upvoted yor câu trả lời.Nhưng tôi là một coder mới làm quen và không thể có được nơi để thêm mã này vui lòng giúp đỡ .... Đây là mã của tôi: - http://stackoverflow.com/questions/3766784/problem-in- cập nhật-datagridview-via-a-thread-khi-scrolling.Xin vui lòng cho tôi biết nơi để thực hiện mã này và nếu bạn có thể cung cấp bản demo nó sẽ là tuyệt vời ...... –

Các vấn đề liên quan