2013-01-04 41 views
9

टेक्स्टबॉक्स या समृद्ध टेक्स्टबॉक्स, केवल एक चीज जो मैं चाहता हूं वह स्क्रॉलबार चलाते समय एक फ़ंक्शन ट्रिगर कर रहा है।कैच टेक्स्टबॉक्स स्क्रॉल इवेंट?

मुझे पहले से ही GetScrollPos और SetScrollPos मिल गया है। मैंने समय-समय पर स्क्रॉलबार स्थिति की जांच करने का विचार किया लेकिन एक बेहतर तरीका होना चाहिए। तो, बेहतर तरीका क्या है?

अद्यतन: का प्रयोग WinForms

+0

आप Windows प्रपत्र या WPF का उपयोग कर रहे –

+0

संभावित डुप्लिकेट [मैं एक ऐसा ईवेंट कैसे लिख सकता हूं जो टेक्स्टबॉक्स में माउस स्क्रॉल करता है?] (Http://stackoverflow.com/questions/2667175 4/कैसे-कर-मैं-लिखना-एक-घटना-वह होता है-जब-माउस-स्क्रॉल-इन-टेक्स्टबॉक्स) – drzaus

उत्तर

7

WinForms मान लिया जाये, तो आप pinvoking कोशिश कर सकते हैं:

public class MyRTF: RichTextBox { 

    private const int WM_HSCROLL = 0x114; 
    private const int WM_VSCROLL = 0x115; 
    private const int WM_MOUSEWHEEL = 0x20A; 

    protected override void WndProc(ref Message m) { 
    base.WndProc(ref m); 

    if (m.Msg == WM_VSCROLL || m.Msg == WM_HSCROLL || m.Msg == WM_MOUSEWHEEL) { 
     // scrolling... 
    } 
    } 

} 
+0

धन्यवाद। WM_MOUSEWHEEL जोड़ना इसे और भी बेहतर बनाता है। –

+0

@m_poorUser Glad इससे मदद मिली। पूर्णता के लिए उत्तर अद्यतन किया गया। स्क्रॉल परिवर्तन के कारण – LarsTech

+0

अभी भी काम नहीं कर रहा है क्योंकि कुंजी दबाएं या नीचे दबाएं। – qakmak

0

और भी बेहतर - छिपा MouseWheel घटना: https://stackoverflow.com/a/26672097/1037948

public Form1() 
{ 
    InitializeComponent(); 
    textBox1.MouseWheel += textBox1_MouseWheel; 
} 

void textBox1_MouseWheel(object sender, MouseEventArgs e) 
{ 
    throw new NotImplementedException(); 
} 
+0

माउस व्हील का उपयोग करने से टेक्स्टबॉक्स में स्क्रॉल करने की अन्य संभावनाएं हैं। बस मौजूदा बॉक्स से टेक्स्ट का चयन करने के बारे में सोचें। यह या तो स्क्रॉल करेगा। या स्क्रॉलबार का उपयोग कर। –

+0

@PaulKertscher duh; मैंने यहां पोस्ट किया होगा यह सोचकर कि यह जुड़ा हुआ धागा जैसा ही पूछ रहा था। मैं जमा करने का समय बताता हूं और दावा करता हूं "यह एक लंबे समय के बाद था!" – drzaus