2013-08-04 7 views
8

पर चित्र बॉक्स माउस निर्देशांक पढ़ें मेरे पास एक चित्र के साथ एक चित्र बॉक्स है और मैं छवि को क्लिक करते समय स्थान (जैसे कि चित्र बॉक्स के अंदर x, y में) पढ़ना चाहता हूं; क्या यह संभव है ? और भी, क्या मैं माउस पर जब इन निर्देशांक (अंक) पढ़ सकता हूं?क्लिक करें

मुझे पता है कि मुझे दी गई घटनाओं (माउस क्लिक और माउस ओवर) का उपयोग करना है, लेकिन यह नहीं पता कि माउस पॉइंटर होने वाले निर्देशांक को कैसे पढ़ा जाए।

उत्तर

1

माउसअप ईवेंट को जोड़ने और फिर MouseEventArgs से स्थान प्राप्त करने के बारे में क्या?

इस तरह

:

private void pictureBox_MouseUp(object sender, MouseEventArgs e) 
{ 
    Point mousePointerLocation = e.Location; 
} 
+0

यह केवल एक बदलाव के साथ काम करता है: प्वाइंट माउसलोक = ई। स्थान; धन्यवाद! – Razvan

+0

हां मैंने इसे लिखने के बाद भी अपनी गलती की। इंगित करने के लिए धन्यवाद! खुशी हुई यह मदद की! :) – jmelhus

2

आप एक्स प्राप्त कर सकते हैं और वाई के रूप में निम्नानुसार निर्देशांक,

this.Cursor = new Cursor(Cursor.Current.Handle); 

    int xCoordinate = Cursor.Position.X; 
    int yCoordinate = Cursor.Position.Y; 

आप, चित्र बॉक्स के अंदर समन्वय निम्नलिखित कोड का उपयोग प्राप्त करना चाहते हैं,

private void pictureBox1_MouseUp(object sender, MouseEventArgs e) 
{ 
    int xCoordinate = e.X; 
    int yCoordinate = e.Y; 
} 
+0

यह काम करता है! धन्यवाद! – Razvan

+0

आपको माउसअप के लिए यह सब कुछ नहीं चाहिए लेकिन आप इसे माउस_होवर –

+0

में उपयोग कर सकते हैं यह FORM के सापेक्ष निर्देशांक देता है। पिक्चरबॉक्स सीमा के लिए नहीं ... – bonCodigo

4

मैं सिर्फ जवाब जोड़ दूंगा:

MouseClick, MouseUp और कई अन्य घटनाओं में आपके पास MouseEventArgs है जिसमें माउस के Location शामिल हैं।

MouseHover में हालांकि आप MouseEventArgs की जरूरत नहीं है और वजह है, अगर आप कर्सर के स्थान की जरूरत है, सांकेतिक शब्दों में बदलनेवाला उदाहरण का उपयोग करें:

private void Form1_MouseHover(object sender, EventArgs e) 
    { 
    this.Cursor = new Cursor(Cursor.Current.Handle); 

    int xCoordinate = Cursor.Position.X; 
    int yCoordinate = Cursor.Position.Y; 
    } 
20

हालांकि अन्य उत्तर सही हैं मुझे यह करने के लिए मेरी बात जोड़ते हैं। आपने इंगित किया है कि इस उद्देश्य के लिए आपको MouseClick या MouseOver ईवेंट को हुक करने की आवश्यकता है। असल में उन घटनाओं को Coordinates प्राप्त करने की आवश्यकता नहीं है, आप Coordinates केवल Click ईवेंट में ही प्राप्त कर सकते हैं।

private void pictureBox1_Click(object sender, EventArgs e) 
{ 
    MouseEventArgs me = (MouseEventArgs)e; 
    Point coordinates = me.Location; 
} 

ऊपर कोड काम करता है के बाद से क्लिक करें घटना के e तर्क लपेटता MouseEventArgs आप बस इसे डाल सकते हैं और इसका इस्तेमाल कर सकते हैं।

+0

यह उत्तर है यदि ओपी चाहता है (मुझे लगता है कि) तस्वीर बॉक्स के सापेक्ष क्लिक पॉइंट निर्देशांक प्राप्त करें। – bonCodigo

+0

यह तब तक सही है जब तक छवि पर कोई परिवर्तन नहीं होता है क्योंकि इसे 'पिक्चरबॉक्स' में प्रस्तुत किया जाता है। यदि प्रस्तुत संस्करण को बढ़ाया गया है, स्केल किया गया है, या पैन किया गया है, तो 'MouseEventArgs.Location' प्रॉपर्टी को छवि निर्देशांक में क्लिक प्राप्त करने के लिए लागू समान परिवर्तनों की आवश्यकता होगी। – kdbanman

+0

@kdbanman तस्वीर बॉक्स के क्लिक किए गए स्थान को प्राप्त करने के साथ क्या परिवर्तन करना है? ओप को चित्र बॉक्स के संबंध में माउस निर्देशांक की आवश्यकता होती है, जिसमें छवि नहीं है। –

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