2013-03-10 23 views
5

मैं सी # में एक साधारण गेंद और पैडल प्रोग्राम बना रहा हूं और पैडल को स्थानांतरित करने के लिए माउस क्लिक का उपयोग कर रहा हूं। माउस क्लिक पंजीकृत करने के लिए, मेरे पास यहतेज़ माउसक्लिक प्रतिक्रिया?

private void Form1_MouseClick(object sender, MouseEventArgs e) 
    { 
     if (e.Button == MouseButtons.Right) 
     { 
      paddle.movePaddleRight(); 
      this.Invalidate(); 
     } 
     if (e.Button == MouseButtons.Left) 
     { 
      paddle.movePaddleLeft(); 
      this.Invalidate(); 
     } 
    } 

समस्या यह है कि यह क्लिक के तेज़ उत्तराधिकार को पंजीकृत नहीं करता है। एक क्लिक के बाद, अगले क्लिक को पंजीकृत करने में लगभग आधे सेकेंड लगते हैं (बीच में सभी क्लिक खो गए हैं)। क्या हर क्लिक के अनुसार पैडल को स्थानांतरित करने और हर क्लिक को पंजीकृत करने का कोई तरीका है?

उत्तर

6

तेजी से क्लिक करने से MouseDoubleClick ईवेंट उत्पन्न होता है। इसके बजाय माउसडाउन ईवेंट का उपयोग करें।

+0

हालांकि एक बहुत पुराना सवाल, यह कुछ जवाब से उछला था। तो मैंने ऊपर उठाया है, और मैं जोड़ता हूं कि माउस में माउस क्लिक करने का अर्थ है "माउस बटन दबाएं और इसे नियंत्रण से बाहर किए बिना छोड़ दें", जो किसी गेम के लिए वांछनीय नहीं है (जहां आप कार्रवाई करना चाहते हैं आप माउस बटन दबाते हैं, जब आप इसे रिलीज़ नहीं करते हैं), जो 'माउसक्लिक' के बजाय 'माउसडाउन' का उपयोग करने का एक और कारण है – Jcl

संबंधित मुद्दे