2011-09-02 13 views
7

मैं एक Winform अनुप्रयोग में नियंत्रण (उदाहरण के लिए लेबल) खींचना और छोड़ना चाहता हूं। मैंने टेक्स्ट खींचने और छोड़ने के कुछ उदाहरण देखे, लेकिन यह वही नहीं है जो मैं चाहता हूं। मैं उपयोगकर्ता को नियंत्रण को स्थानांतरित करने में सक्षम बनाना चाहता हूं। क्या कोई मुझे कुछ संसाधनों या उदाहरणों के लिए निर्देशित कर सकता है? धन्यवाद।Winform नियंत्रणों को खींचें और छोड़ें

+0

क्या आप केवल नियंत्रणों को स्थानांतरित करना चाहते हैं या आपको "ड्रॉप" की आवश्यकता है - विशेषताएं जहां जानकारी tr है ansfered? – Carsten

+3

[यहां] (http://www.codeproject.com/Tips/178587/Draggable-WinForms-Controls?display=Print) उपयोगी सरल विस्तार है। – Reniuz

+0

कोड प्रोजेक्ट पर भी मेरी आर्कटिकल देखें: [www.codeproject.com/Articles/36412/Drag-and-Drop-ListBox ](http://www.codeproject.com/Articles/36412/Drag-and-Drop- सूची बाक्स)। लेकिन सिर्फ एक फॉर्म पर लेबल आराउंड ले जाना ड्रैग-एंड-ड्रॉप नहीं है! –

उत्तर

3

आपको ड्रैगगेबल नियंत्रण बनाने के तरीके पर उदाहरण देखना चाहिए।

यहां कुछ जवाब भी हैं।

Tailor Your Application by Building a Custom Forms Designer with .NET

मैं बहुत समय पहले डेल्फी में कुछ इसी तरह किया था, स्रोत कोड की खोज करेंगे, कन्वर्ट:

इस Move controls when Drag and drop on panel in C#

यह कैसे फार्म डिजाइनर की मेजबानी के लिए पर एक पूरा उदाहरण है देखें यह .NET C# में है और उस मामले पर विकी पेज बना रहा है, क्योंकि यह हाल ही में ऐसा लोकप्रिय प्रश्न बन रहा है :)

+0

डेविड पिरास अच्छा होगा यदि आप दिखा सकते हैं कि कैसे होस्टिंग फॉर्म डिज़ाइनर नियंत्रण आंदोलन की अनुमति देने के लिए कोड जोड़ने से पहले बेहतर काम करता है और बाद में फॉर्म लोडिंग के लिए नई स्थिति को सहेजने के लिए \t होस्टिंग डिजाइनर के लिए मूल लिंक के लिए बीटीडब्लू अप्रचलित है। एक संभावित लिंक https://blogs.msdn.microsoft.com/rprabhu/2004/06/15/designer-hosting-in-whidbey/?replytocom=5005#respond लेकिन प्रतिस्थापन बहुत उपयोगी नहीं है सी # कोड उत्सर्जित करने के लिए या डिजाइनर सतह के साथ क्या किया जा सकता है दिखाने के लिए नहीं दिखाया। अभी भी बहुत सारे कार्यान्वयन विवरण बाकी हैं। – gg89

1

जहां तक ​​मैं समझता हूं, जहां आप नियंत्रण छोड़ना चाहते हैं उसे कंटेनर कहा जाता है, वास्तव में कोई भी नियंत्रण कंटेनर के रूप में कार्य कर सकता है। तो पहले उस कंटेनर, आपको ड्रॉप प्रॉपर्टी के साथ-साथ उन नियंत्रणों की ड्रैग प्रॉपर्टी को सक्षम करने की आवश्यकता है जिन्हें आपको खींचने की आवश्यकता है।

फिर प्रत्येक नियंत्रण के लिए ईवेंट (क्रैंडैग, कैंड्रॉप, कंट्रोल मैड इत्यादि) लिखें, जिसमें वस्तुओं को पकड़ने के लिए कुछ तर्क और उन्हें आप प्रदर्शित कर सकते हैं।

कहें, बीमार एक उदाहरण लें, जिसमें आप कम्बोम्बॉक्स से इमेजटेक्स्ट को एक पिक्चरबॉक्स में खींचाना चाहते हैं और फिर पिक्चरबॉक्स को निर्देशिका में टेक्स्ट और ठीक से संबंधित फ़ाइल नाम का विश्लेषण करना है और उस छवि को इसके वर्तमान में लोड करना है।

तो यहां, जब आप कम्बोम्बॉक्स से टेक्स्ट खींचना शुरू करते हैं, तो आपको ईवेंट कैंड्रैग में कुछ तर्क लिखना होगा। फिर एक बार जब आप ड्रॉप करते हैं, तो आपको यह समझने के लिए तर्क लिखना होगा कि किस तरह की वस्तु को जोड़ा गया था और उस नियंत्रण से संबंधित पाठ प्राप्त करें (थोड़े से समझने वाले) जहां आप अन्य नियंत्रण छोड़ते हैं।

क्षमा करें, मेरे पास अब आपको देने के लिए कोई कोड नहीं है, लेकिन मुझे आशा है कि आपको यह पता चल जाएगा कि यह कैसे किया गया। क्या यह लेख आपकी मदद कर सकता है? http://vicky4147.wordpress.com/2007/02/04/a-simple-drag-drop-in-winforms/

+0

वास्तव में आप कर सकते हैं लेकिन आप वास्तव में बटन या चेकबॉक्स में नियंत्रण नहीं छोड़ेंगे। केवल फॉर्म या पैनल और कुछ अन्य अच्छे कंटेनर हैं। –

+0

हाँ सच है, हो सकता है कि हम coz न हों, टेक्स्टबॉक्स में दाईं ओर ड्रैग करने का कोई उपयोग नहीं है। सभी टेक्स्टबॉक्स के बाद गिराए गए नियंत्रण में टेक्स्ट (यदि मौजूद है) प्रदर्शित कर सकते हैं। तो कोई उपयोग नहीं :)। – Zenwalker

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