16

मेरे पास कुछ जटिल उपयोगकर्ता नियंत्रण है, और विजुअल स्टूडियो 2008 मुझे इसके साथ काम करते समय एक हानिकारक परेशानी दे रहा है। प्रत्येक बार जब मैं डिज़ाइनर के साथ नियंत्रण खोलता हूं, तो यह डिजाइनर द्वारा निर्धारित कुछ हानिरहित मूल्यों को तुरंत बदलने का निर्णय लेता है - अर्थात आकार गुणों का प्रारंभिकरण। यदि मैं उन परिवर्तनों को सहेजता हूं, बंद करता हूं, और फिर से खोलता हूं, तो यह लगभग हमेशा समाप्त होता है कि मेरे नियंत्रण के किसी अन्य घटक को अपने प्रारंभिक आकार को बदलना आवश्यक है, विज्ञापन infinitum। सौभाग्य से ये परिवर्तन हानिरहित हैं क्योंकि मैं हर जगह स्वचालित आकार का उपयोग कर रहा हूं, लेकिन यह काम करने के लिए काफी परेशान है। मुझे यह पता लगाना शुरू नहीं हुआ कि क्या गलत हो रहा है, यह पता लगाने के लिए कि अभी क्या मेरा विचार केवल यह है कि डिजाइनर हर बार जब मैं नियंत्रण खोलता हूं तो ऑटो-साइजिंग को शुरुआती आकार के क्षेत्रों में वापस ले रहा है। कारणों/फिक्स पर कोई विचार?विजुअल स्टूडियो डिज़ाइनर हमेशा मेरा नियंत्रण बदलने की कोशिश कर रहा है

संपादित करें: इसके अलावा, मैं आवेदन सेटिंग्स का उपयोग कर रहा आवेदन की रन के पार कुछ आकार बदलने योग्य बच्चे घटकों के आकार को बचाने के लिए है, लेकिन मैं वास्तव में आशा है कि डिजाइनर बहुत चालाक समझने के लिए कि यह केवल कभी चूक का उपयोग कर होना चाहिए।

+0

मैं इसे पूरी तरह से प्राप्त करता हूं, जो वास्तव में परेशान होता है क्योंकि यह मुझे हर समय स्रोत नियंत्रण के लिए संकेत देता है, और एक बार में ब्रेकिंग परिवर्तन करता है! – GWLlosa

+2

मुझे विजुअल स्टूडियो 2012 में एक ही समस्या है जहां मेरे कस्टम नियंत्रण में बाल नियंत्रण का आकार बदल रहा है। आपके लिए काम करने वाले समाधान पर कोई शब्द? – almostProgramming

उत्तर

5

आप सही हैं, डिजाइनर अक्सर गुणों के लिए डिफ़ॉल्ट मान जोड़ने की कोशिश करता है।

संपत्ति घोषणा की चोटी पर इस जोड़ें:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 

कि डिजाइनर बता देंगे इस प्रॉपर्टी को नकारने के।

+0

मैं आकार संपत्ति के साथ ऐसा नहीं कर सकता, क्योंकि इसे नियंत्रण और गैर-आभासी से विरासत में मिला है (अच्छी तरह से, बेस क्लास को रीडक्लेयरिंग और पाइपिंग के बिना, जो मूर्खतापूर्ण है)। इसके अलावा, मैं ज्यादातर ऑफ-द-द-बॉक्स घटकों का उपयोग कर रहा हूं, इसलिए मुझे इन सभी को अपने स्वयं के कस्टम व्युत्पन्न कक्षाओं में बदलना होगा, वास्तव में एक अच्छा विकल्प नहीं। –

+0

मुझे नहीं लगता कि आप बिना आकार के "आकार" के आकार आकार को कैसे नियंत्रित कर सकते हैं। – Benjol

1

मुझे कुछ ऐसी ही समस्या है। मैं इंफ्राजिस्टिक्स ग्रुपबॉक्स का उपयोग उस उपयोगकर्ता नियंत्रण पर कर रहा हूं जिसे मैंने विरासत में मिला था और अब व्युत्पन्न कक्षा में अपना स्वरूप और अनुभव बदलना चाहता हूं। मैंने इसे बेस क्लास में संरक्षित किया है - इसलिए यह मुझे व्युत्पन्न कक्षा में गुणों को बदलने की अनुमति देता है। लेकिन यह इसे बचा नहीं है। हर बार जब मैं इसे खोलता हूं - मुझे बेस क्लास के समान पुराने मूल्य मिलते हैं।

कोई विचार?

संपादित करें: मैंने इसे समझ लिया।

उपर्युक्त उत्तरों में से किसी एक के लिए विभिन्न मूल्यों का प्रयास करना। के बजाय [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] का उपयोग कर बदले गए गुणों के लिए कोड उत्पन्न करता है - और चीजें वांछित के रूप में काम करती हैं।

0

अपने नियंत्रण की डिफ़ॉल्ट आकार संपत्ति को ओवरराइड करने का प्रयास करें।

एमएसडीएन से: डिफ़ॉल्ट आकार की संपत्ति प्रारंभ में बनाए जाने पर नियंत्रण के आकार का प्रतिनिधित्व करती है।

+0

यह मेरा नियंत्रण नहीं है जिसका आकार बदल रहा है, यह सभी बाल नियंत्रण हैं जिनके आकार बदल रहे हैं। –

8

शायद यह मदद कर सकता है:
मैंने देखा कि फॉर्म डिज़ाइनर (कोई WPF, no Web आदि) एक अजीब व्यवहार नहीं है यदि आप एक कस्टम UserControl डालते हैं।
अन्य नियंत्रणों (ग्रुपबॉक्स, एडिटबॉक्स, कॉम्बोबॉक्स) आकार का एक यादृच्छिक परिवर्तन है (मुझे चौड़ाई के साथ हुआ)।
आकार बदलने के लिए चुने गए नियंत्रण यादृच्छिक प्रतीत होते हैं, लेकिन बनाम 2010 के पुनरारंभ करने में यह हमेशा समान होता है। यदि हटाया गया और पुनः सम्मिलित किया गया है, तो डिज़ाइनर एक अलग नियंत्रण चुनता है यादृच्छिक रूप से आकार बदलता है ...

मैंने अपने उपयोगकर्ता नियंत्रण के "ऑटो" से "इन्टरिट" से ऑटोस्केल मोड को बदल दिया और यह फिर से नहीं हुआ।

+0

हां, बिल्कुल। शायद मैंने स्पष्ट रूप से निर्दिष्ट नहीं किया था। मैं WPF का उपयोग नहीं कर रहा हूं और न ही वेब डिज़ाइनर –

+0

क्षमा करें, मुझे नहीं पता कि मैंने क्यों सोचा था कि आपने WPF के बारे में उत्तर दिया था। –

+1

ऑटोस्केलमोड ने मदद की। इसे मेरे मामले में किसी को भी सेट करें। – transistor1

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