2011-10-16 11 views
9

मैं निम्नलिखित विशेषताओं का उपयोग एक सार्वजनिक संपत्ति के साथ एक UserControl है उपेक्षा:बनाना दृश्य स्टूडियो डिजाइनर एक सार्वजनिक संपत्ति

[Browsable(false)] 
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 

मैं मालिक फ़ॉर्म को मिटाने की कोशिश की है, दृश्य स्टूडियो 2010 में एक ताजा विधि को पुनः बनाने , और इस उपयोगकर्ता नियंत्रण को फॉर्म में जोड़ना। क्योंकि इस संपत्ति क्रमबद्धता द्वारा बनाई जा करने के लिए नहीं बनाया गया है

this.vMyUserControl.MyProperty = ((MyNamespace.MyClass)(resources.GetObject("vMyUserControl.MyProperty"))); 

यह मेरा आवेदन दुर्घटनाओं: यह डिजाइनर फ़ाइल में निम्नलिखित की तरह एक पंक्ति जोड़कर रखता है।

उत्तर

1

मैं एक वास्तविक समाधान खोजने में असफल रहा, लेकिन कोई समाधान के बजाय ...

मैं था Form.resx फ़ाइल में जाने के लिए और डेटा/मूल्य का पता लगाने की कुंजी जोड़ी कि यह मेरी सार्वजनिक संपत्ति में deserializing था। मैंने एक्सएमएल जोड़ी सामग्री मैन्युअल रूप से हटा दी और फिर मैं एप्लिकेशन को चलाने में सक्षम था।

इसने मेरे एप्लिकेशन को त्रुटियों के बिना बनाने और चलाने की अनुमति दी। मैंने जो कुछ भी कोशिश की (मेरे उपयोगकर्ता नियंत्रण के लिए कंटेनर फॉर्म को हटाने और बार-बार इसे फिर से बनाने सहित) काम नहीं किया।

5

उपयोग [DesignerSerializationVisibilityAttribute (Visibility = Hidden)]

MSDN Article

+1

क्षमा करें, मैं नहीं देखा था आप पहले से ही उपयोग किया है कि कि ... –

2

के साथ संपत्ति के एक्सेसर तरीकों के साथ एक निजी क्षेत्र उपयोग करने का प्रयास [क्षेत्र: NonSerialized] विशेषता:

[field: NonSerialized] 
private MyType _MyProperty; 

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 
public MyType MyProperty 
{ 
    get 
    { 
     return _MyProperty; 
    } 
    set 
    { 
     _MyProperty = value; 
    } 
} 
11

संपत्ति केवल डिजाइन समय में पढ़ा यह resx फ़ाइल में श्रृंखलाबद्ध किया जा रहा नहीं कर पाएगा बनाना। आश्चर्यजनक रूप से अगर माईटाइप एक संग्रह होता है तो पठन केवल डिजाइनर द्वारा अनदेखा किया जाता है और आप अभी भी डिज़ाइन समय पर संपत्ति सेट कर सकते हैं भले ही संपत्ति को रेक्स में लिखा न जाए, इसलिए संपत्ति को ब्राउज़ करने योग्य नहीं है।

[ReadOnly(true)] 
[Browsable(false)] 
public MyType MyProperty 
{ 
    get { return _MyProperty; } 
    set { _MyProperty = value; } 
} 
+1

मैं बस साझा करने के लिए है कि एक सहयोगी जब एक WinForm डिजाइनर को देखने के लिए इस समाधान की सिफारिश करना चाहते हैं के क्रैश होने का दृश्य स्टूडियो का कारण बनता है। इन विशेषताओं के साथ सभी कस्टम सार्वजनिक गुण सेट करें जो डिजाइनर को वीएस को क्रैश होने से रोक देगा। – TheLegendaryCopyCoder

+0

मेरी इच्छा है कि यह विशेषता कॉम्पैक्ट फ्रेमवर्क में मौजूद हो। :( – reirab

+0

मुझे पूरी तरह से योग्य नाम का उपयोग करना पड़ा: वीएस 2013 (वीबी) में – Azura

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

  • कोई संबंधित समस्या नहीं^_^