पर प्रत्येक घटक से माउस ईवेंट कैप्चर करना मुझे अपने WinForm C# एप्लिकेशन पर MouseEvents के साथ कोई समस्या है। मैं अपने आवेदन पर सभी माउस क्लिक प्राप्त करना चाहता हूं, लेकिन मैं हर बच्चे के घटक में श्रोता नहीं रखना चाहता हूं और न ही विंडोज माउस हुक का उपयोग करना चाहता हूं।सी # WInForm
फ्लैश पर मैं फिल्म पर सभी माउस एवेन्ट्स प्राप्त करने के लिए स्टेज पर एक श्रोता डाल सकता हूं। क्या सी # पर ऐसी चीज है? एक वैश्विक माउस लिस्टर?
संपादित करें: मैं IMessageFilter ans इस्तेमाल किया Application.AddMessageFilter से इस वर्ग पैदा करते हैं।
public class GlobalMouseHandler : IMessageFilter{
private const int WM_LBUTTONDOWN = 0x201;
public bool PreFilterMessage(ref Message m){
if (m.Msg == WM_LBUTTONDOWN) {
// Do stuffs
}
return false;
}
}
और इस कोड डाल नियंत्रण वैश्विक क्लिक के सुनने की जरूरत है कि पर:
GlobalMouseHandler globalClick = new GlobalMouseHandler();
Application.AddMessageFilter(globalClick);
मदद के लिए धन्यवाद!
मदद के लिए धन्यवाद! सब ठीक काम करता है। मैंने एप्लिकेशन का उपयोग किया। Susess के साथ AddMessageFilter। मैं माउस घटनाओं को हुक करता हूं और WinForm स्तर पर अन्य नियंत्रणों पर ईवेंट भेजने के लिए एक C# MouseEventHandler बनाता हूं। –