graphics - How to dynamically create an overlay over a VB.Net PictureBox -


मेरे पास VB.Net PictureBox floorPlanImage एक फार्म पर form1

मैं तस्वीर बॉक्स में एक चित्र लोड करता हूँ:

  floorPlanImage.image = my.resources.ResourceManager.GetObject ("level8") 'यह वास्तव में गतिशील है, और यह भाग काम करता है   

मैं छवि के एक क्षेत्र को उजागर करने के लिए एक ओवरले बनाने का प्रयास कर रहा हूं:

  सार्वजनिक उप हाइलाइट प्रिंट (एरिया के रूप में, वही x1 जैसा पूर्णांक, बाय वैल 1 जैसा पूर्णांक, बाय वैल 2 के रूप में पूर्णांक के रूप में, पूर्णांक के रूप में बाय y2) **** काम नहीं करता ग्राम के रूप में मंद ग्राम = मी। क्रिएटग्राफिक्स मंद आर जैसे आयत = नया आयताकार (x1, y1, x2 - x1, y2 - y1) 'ये दंड पेन के रूप में पेन = न्यू पेन (रंग। फोमएआरबीबी (128, 32, 100, 200), 1) 'अर्ध-पारदर्शी मंद बी जैसे ब्रश = न्यू सोलिडब्रश (पेन। रंग) जी। फ़िलरेक्टेंगल बी, आर) एंड सब   

मुझे रनटाइम पर यह गतिशील रूप से करने की आवश्यकता है, कहते हैं, बटन पर क्लिक करें। उपरोक्त कार्य आयत को आकर्षित नहीं करता है।

हालांकि, अगर मेरे पास ऐसा फ़ंक्शन होता है जो मंजिल वाले पैनल की योजना बनाते हैं। चित्र जैसा निम्न प्रकार है, फिर आयत खींचा जाता है क्योंकि मैं इसे :

  निजी उप-मंजिल पैनलइज़ेगेंट (ऑब्जेक्ट के रूप में ववल प्रेषक, सिस्टम के रूप में वही ई। जैसे। विन्डोज.फॉर्म। पेंटएवेंटएरग्स) मंजिल वाले पैनल को तैयार करता है। चित्र '**** वर्क्स, लेकिन मेरे वर्कफ्लो डिम ग्रा जैसा कि ग्राफिक्स = ई.ग्राफ़िक्स मंद आर के रूप में आयत = नया आयत (100, 100, 100, 100) दीम कलम पेन = नया पेन (रंग। फोमएआरबीबी (128, 32, 100, 200), 1) मंद बी जैसे ब्रश = नया सोलिडब्रिश (पेन। रंग) जी। फ़िलट्रेटेंगल (बी, आर) एंड सब   

प्रश्न (आखिरकार)

मैं कैसे कर सकता हूं मेरे पिक्चरबॉक्से पर आयत को ठीक से ओवरक्ल करने के लिए मेरे ऑनक्लिक फ़ंक्शन को संशोधित करें?

ऑनक्लिक ईवेंट में आपको सहेजने की आवश्यकता है एक सदस्य चर के लिए स्थान / बिंदु और एक झंडे सेट करें ताकि ऐप को आपके पास एक स्थान बचाया जा सके। चित्र बॉक्स कॉल को अपडेट करने के लिए अमान्य और अद्यतन।

  मंजिलपटल इमेज। इन्वैडेटेट () floorPlanImage.Update ()   

ओन्पेन इवेंट में झंडे का परीक्षण करें एक बिंदु है, तो ओवरले को आकर्षित करने के लिए सहेजे गए बिंदु का उपयोग करें।

  निजी उप-मंजिल पैनलइज़ेगेंट (ऑब्जेक्ट के रूप में उप-प्रेषक, सिस्टम के रूप में वही ई। जैसे। विन्डोज.फॉर्म। पेंटएवेंटएरग्स) मंजिल वाले पैनल को संभालती है Image.Paint IfPoint ' सहेजा गया बिंदु समाप्त करें यदि अंत उप     के साथ ड्रा

Comments