This question में कस्टम ऑब्जेक्ट प्रकार का क्रॉस-प्रोसेस ड्रैग और ड्रॉप, जो मुझे रूचि है, लेकिन काफी नहीं है।WinForms C#
मेरे पास एक .NET WinForms एप्लिकेशन सी # में लिखा गया है। मेरे पास ListView
नियंत्रण है जो C# ऑब्जेक्ट्स की एक श्रृंखला प्रदर्शित करता है। मैंने इसे झुका दिया है ताकि आप इन सूची दृश्य वस्तुओं को उसी एप्लिकेशन में किसी भिन्न रूप में खींच/छोड़ सकें, और यह उस अन्य रूप के लिए ड्रॉप हैंडलर पर ऑब्जेक्ट्स की सरणी (Session
टाइप करें) को सही ढंग से पास कर दे।
हालांकि, अब मैं क्रॉस-प्रोसेस ड्रैग/ड्रॉप का समर्थन करना चाहता हूं जहां मैं अपने आवेदन के कई उदाहरण चलाता हूं। यह प्रतीत होता है कि यह काम करने जा रहा है (उदा। GetDataPresent
सफल), लेकिन आखिरकार जब मैं डेटा को पुनर्प्राप्त करने का प्रयास करता हूं तो अपवाद फेंकता है - object[]
Session[]
पर नहीं डाला जा सकता है।
if (e.Data.GetDataPresent("Fiddler.Session[]"))
{
Session[] oDroppedSessions;
try
{
oDroppedSessions = (Session[])e.Data.GetData("Fiddler.Session[]");
}
catch (Exception eX)
{ // reaches here
}
}
किसी को भी पता है कि अगर मैं आदेश में इस काम करने के लिए मेरे वस्तुओं के लिए ISerializable
को लागू करना चाहिए? आमतौर पर, मैं बस कोशिश करता हूं, लेकिन इस कक्षा के लिए ISerializable
लागू करना काफी गैर-तुच्छ होगा, और मुझे चिंता है कि ऐसा करने के अजीब दुष्प्रभाव हो सकते हैं।
अद्यतन: ISerializable
को लागू विधि help-- नहीं है कभी नहीं कहा जाता है। इसी प्रकार, कक्षा में Serializable
विशेषता जोड़ने से कोई प्रभाव नहीं पड़ता है। कोई अन्य विचार?
एक पंक्ति जोड़ें 'कंसोल। राइटलाइन (स्ट्रिंग.फॉर्मैट ("अपवाद पकड़ा गया। विवरण {0}", eX.ToString());' पकड़ ब्लॉक में। संदेश क्या होगा? – t0mm13b
"ऑब्जेक्ट [] को सत्र []" – EricLaw