लागू करें मैं आलसी ड्रैग और ड्रॉप ऑपरेशन को लागू करने की कोशिश कर रहा हूं। मैं अपने उपयोगकर्ता को फाइलों के साथ एक सूचीदृश्य दिखाना चाहता हूं, जब उपयोगकर्ता फ़ाइल को ड्रैग करता है और उसे उस फ़ोल्डर में छोड़ देता है जिसे सामग्री डाउनलोड और वितरित की जानी चाहिए।आलसी ड्रैग और ड्रॉप
मैं IDataObject इंटरफ़ेस का उपयोग कर रहा हूँ, लेकिन मेरी समस्या यह है कि GetData() विधि जिस तरह से बहुत जल्दी क्वेरी की जाती है है। उदाहरण के लिए डेस्कटॉप पर एक ड्रैग (बिना किसी ड्रॉप के) GetData() विधि दो बार पूछताछ करेगा। और इनमें से प्रत्येक कॉल फ़ाइल के डाउनलोड को शुरू करता है:/
अब, मेरा प्रश्न है: यहां क्या गलत है - GetData() विधि बिना किसी ड्रॉप के बुलाया गया है? आलसी में आलसी ड्रैग & ड्रॉप ऑपरेशंस को लागू करने का कोई और तरीका है?
आपके पास समस्या होगी एक्सप्लोरर में ड्रॉप इवेंट के लिए सुन रहा है, जो तब होता है जब आप डाउनलोड शुरू करना चाहते हैं। आप अपने फॉर्म में किसी अन्य नियंत्रण पर ड्रैग-ड्रॉप करके इसे सबूत-ऑफ-अवधारणा कर सकते हैं, जिसे आप ड्रॉप ईवेंट की सदस्यता ले सकेंगे। –
हां, यह मेरी मदद कर सकता है, लेकिन यह बहुत अधिक जटिल लगता है और केवल एक्सप्लोरर को छोड़ने से बांधता है। अन्य सबसे कम, जो सामान्य रूप से दायरप्रॉप स्वीकार करते हैं, डेटा प्राप्त करने में सक्षम नहीं होंगे। सिद्धांत रूप में, ड्रॉप इवेंट को * IDataObject.GetData() * पर कॉल करना चाहिए - और केवल इसे ऐसा करना चाहिए। फिर मैं डेटा वितरित कर सकता हूं (प्रत्यक्ष या डाउनलोड के माध्यम से)। हालांकि इसमें शामिल कार्यों के बिना इन कार्यों को कॉल किया जाता है, जो इस दृष्टिकोण को अनुपयोगी बनाता है। – tanascius
क्या प्राप्त करने के अंत में बाइट्स देखने के लिए वास्तव में डाउनलोड करने में कोई देरी नहीं है? –