2010-06-28 14 views
6

मुझे पता है कि नामित नियंत्रण की सीमा 254 है, इससे परे कि आपको नियंत्रण सरणी का उपयोग करना होगा। लेकिन ऐसा लगता है कि हमने सरणी के लिए भी सीमा को मारा है। कोई विचार क्या पूर्ण सीमा है?वीबी 6: मेरे पास एक ही फॉर्म पर कितने नियंत्रण हो सकते हैं?

+3

शायद आपको अपने फॉर्म डिज़ाइन का पुनर्मूल्यांकन करना चाहिए ... – ceejayoz

+2

मेरा लक्ष्य पूरे एप्लिकेशन को प्रतिस्थापित करना है, लेकिन हम रात को ऐसा नहीं कर सकते हैं। –

+0

सटीक संख्या इस प्रश्न के लिए कोई फर्क नहीं पड़ता मुझे पता है, लेकिन मैनुअल का कहना है कि सीमा 256 के बजाय 254 है http://msdn.microsoft.com/en-us/library/aa240865(v=VS.60)। एएसपीएक्स – MarkJ

उत्तर

7

कोई पूर्ण सीमा नहीं है। यदि आप फॉर्म पर पर्याप्त नियंत्रण डालते हैं, तो आप अंततः स्मृति से बाहर हो जाएंगे। मैंने एक परीक्षण ऐप बनाया जो कमांड बटन को नियंत्रण सरणी में लोड करता है। मेरा पहला रन लगभग 6 9 00 बटनों पर "आउट ऑफ़ मेमोरी" त्रुटि से रुक गया। मैंने कुछ अन्य ऐप्स बंद कर दिए और लगभग 8200 लोड करने में सक्षम थे। मैंने टेक्स्ट बॉक्स के साथ एक ही काम किया और अलग-अलग परिणाम प्राप्त किए (लगभग 7300 पहले और 8600 बाद में)। विभिन्न नियंत्रण स्मृति की अलग-अलग मात्रा का उपभोग करते हैं, इसलिए वास्तव में कोई भी नियंत्रण नहीं है जिसे आप किसी फ़ॉर्म पर रख सकते हैं।

1

हमारे पास वीबी 6 में लिखे गए एक रिकॉर्ड प्रबंधन प्रणाली है और एक यूआई दिशानिर्देश है जो कहता है कि प्रत्येक रिकॉर्ड में इसके साथ जुड़े एक डेटा एंट्री फॉर्म होना चाहिए (यानी अन्य विंडोज़ नहीं खोल सकते हैं)। इस नीति के परिणामस्वरूप, हमारे सिस्टम में अधिक जटिल रिकॉर्ड प्रकारों में से एक अब कुल 65 9 व्यक्तिगत नियंत्रण के साथ एक रूप है। हमने 256 नामित नियंत्रण सीमा में भाग लिया था, और फिर समय के साथ सरणी को नियंत्रित करने के लिए कई नियंत्रणों को परिवर्तित कर दिया था। हाल ही में, हमने पूरे फॉर्म के माध्यम से जाने और सरणी को नियंत्रित करने के लिए कुछ शेष स्टैंडअलोन नियंत्रणों को परिवर्तित करने के बाद, 5 या 6 नए नियंत्रणों के लिए कमरे निचोड़ा।

यह एक समय है जहां मैं नियम तोड़ना चाहता हूं, लेकिन इसमें एकाधिक रूप दृष्टिकोण का उपयोग करने के लिए काफी कुछ रिफैक्टरिंग शामिल होगी।

किसी भी घटना में, आप किसी फॉर्म पर कम से कम 65 9 नियंत्रण फिट कर सकते हैं, लेकिन मैं कभी भी यह जानने में सक्षम नहीं हूं कि वास्तविक पूर्ण सीमा क्या है (और मुझे यकीन नहीं है कि मैं चाहता हूं)।

+0

मुझे लगता है कि हम एक हजार से अधिक थे जब हमने हार्ड सीमा पर हमला किया, लेकिन मैं सही संख्या खोजने की कोशिश कर रहा हूं ताकि व्यवसाय विश्लेषकों को पता चले कि उन्हें अगले संस्करण से कितना कच्चा निकालना है। –

+1

यदि फॉर्म अभी सीमा के करीब है, तो आप _Form_Load_ ईवेंट में कुछ कोड जोड़ सकते हैं ताकि आपको यह बताने के लिए कि फ़ॉर्म पर कितने नियंत्रण हैं, यानी 'MsgBox Me.Controls.Count'। फिर आप सीमा को हिट करने तक और नियंत्रण जोड़ सकते हैं, फिर प्रोग्राम चलाएं और देखें कि संदेश बॉक्स में आप किस नंबर पर वापस आते हैं। –

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