उस पोस्ट के आधार पर @Adriaan Stander poste स्क्रॉल घटनाओं को बढ़ाने के लिए मेरी कक्षा नीचे है।
internal class ControlScrollListener : NativeWindow, IDisposable
{
public event ControlScrolledEventHandler ControlScrolled;
public delegate void ControlScrolledEventHandler(object sender, EventArgs e);
private const uint WM_HSCROLL = 0x114;
private const uint WM_VSCROLL = 0x115;
private readonly Control _control;
public ControlScrollListener(Control control)
{
_control = control;
AssignHandle(control.Handle);
}
protected bool Disposed { get; set; }
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
private void Dispose(bool disposing)
{
if (Disposed) return;
if (disposing)
{
// Free other managed objects that implement IDisposable only
}
// release any unmanaged objects
// set the object references to null
ReleaseHandle();
Disposed = true;
}
protected override void WndProc(ref Message m)
{
HandleControlScrollMessages(m);
base.WndProc(ref m);
}
private void HandleControlScrollMessages(Message m)
{
if (m.Msg == WM_HSCROLL | m.Msg == WM_VSCROLL)
{
if (ControlScrolled != null)
{
ControlScrolled(_control, new EventArgs());
}
}
}
}
इतना है कि यह प्रयोग करें ...
एक क्षेत्र घोषित करें: में
_processListViewScrollListener = new ControlScrollListener(ProcessesListView);
वायर:
private ControlScrollListener _processListViewScrollListener;
नियंत्रण जो आप को पता है की जरूरत है issrolling साथ यह इन्स्तांत एक हैंडलर:
_processListViewScrollListener.ControlScrolled += ProcessListViewScrollListener_ControlScrolled;
हैंडलर घटना:
void ProcessListViewScrollListener_ControlScrolled(object sender, EventArgs e)
{
// do what you need to do
}
उठाया स्थिति में घटना args और अधिक उपयोगी जानकारी शामिल करने के लिए बदलाव किया जा सकता है। मुझे बस इतना पता होना चाहिए कि मेरा नियंत्रण स्क्रॉल किया गया था!
बहुत बहुत धन्यवाद। यह वही है जो मैं हासिल करने की कोशिश कर रहा हूं। – murasaki5
WM_VSCROLL संदेश के साथ कुछ सीमाएं देखने के लिए http://stackoverflow.com/questions/1176703/listview-onscroll-event/1182232#1182232 पढ़ें। – Grammarian
इस उत्तर ने ग्रिडलाइन – Mandrake