2011-02-16 10 views
5

मेरे पास पहले से बनाए गए नियंत्रणों के साथ एक मौजूदा .NET अनुप्रयोग है।कस्टम क्लास के साथ मौजूदा नियंत्रण को प्रतिस्थापित करें .NET Winforms

अब मेरे पास अतिरिक्त गुण, विधियों इत्यादि के साथ - कहने वाले बटन (जो "बटन" से विरासत में हैं) के लिए एक नया कस्टम नियंत्रण वर्ग है संकलित ठीक है, और यह मेरे टूलबार में दिखाता है।

मैं वीएस कैसे बता सकता हूं कि मैं मौजूदा नियंत्रण को नए के साथ बदलना चाहता हूं?

मेरा मतलब है, अगर मैं डिजाइनर कोड खोलता हूं और मैन्युअल रूप से नियंत्रण के प्रकार को बदलता हूं, तो वीएस वास्तव में नाखुश है और डिज़ाइन एक ग़लत त्रुटि संदेश के साथ टूट गया है और नीचे है।

क्या वीएस में डिज़ाइन को तोड़ने के बिना डिज़ाइनर जेनरेट कोड को बदलने का कोई तरीका है?

या क्या प्रत्येक नियंत्रण मैन्युअल रूप से हटाने के अलावा इसे करने का कोई तरीका है, और एक नया बनाओ? यह एक वास्तविक परेशानी होगी क्योंकि जब मैं नियंत्रण हटाता हूं तो सभी नियंत्रण के हैंडलर फॉर्म के कोड में मिटा दिए जाएंगे। जैसा:

संभालती myControl.Click ... हैंडल myControl.MouseHover ... आदि

कोई टिप आपका स्वागत है!

+0

बुरा त्रुटि संदेश में क्या कहता है बिल्ड: के हर घटना के लिए एक ही है? – Justin

+0

गंदा त्रुटि एक वीएस "नीली स्क्रीन" की तरह है जो बताती है कि formx.designer.vb में कुछ त्रुटियों के कारण फॉर्मैक्स प्रदर्शित नहीं किया जा सकता है, क्योंकि ऑटो-जेनरेट कोड को छेड़छाड़ की गई है और यह नहीं होना चाहिए उदाहरण के लिए, कहें कि डिज़ाइनर में एक लेबल है: Dim CityLabel System.indows.Forms.Label और I इसे DIP cityLabel के साथ myProject.SpecialLabel के रूप में प्रतिस्थापित करता है। फिर त्रुटि है। कृपया ध्यान दें कि मैंने मित्र के साथ मित्र को भी बदल दिया है मेरे खुद के वर्ग के साथ लेबल घोषित करने के लिए डिजाइनर कोड का हिस्सा .. –

उत्तर

0

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

2

पूर्ण प्रक्रिया निम्नानुसार है।

बैकअप बनाएं!

समाधान एक्सप्लोरर विंडो पर जाएं (Ctrl Alt L शॉर्टकट है) और "सभी फ़ाइलें दिखाएं" बटन पर क्लिक करें। उस फ़ॉर्म का चयन करें जिसे आप नियंत्रण प्रतिस्थापन करना चाहते हैं। "designer.vb" फ़ाइल दिखाने के लिए छोटे त्रिकोण पर क्लिक करें।

इसे खोलें।

नियंत्रण उदाहरण के लिए खोजें जिसे आप प्रतिस्थापित करना चाहते हैं। की घटनाओं के लिए की जांच:

Me.ControlToBeReplaced = New System.Windows.Forms.TypeOfControlToReplace() 

स्थानापन्न नियंत्रण की अपनी परिभाषा।

Friend WithEvents ControlToBeReplaced As System.Windows.Forms.TypeOfControlToReplace 

अपने समाधान

+0

क्या आपको सच में लगता है कि मैंने पहले से ही ऐसा नहीं किया है? कृपया प्रश्न फिर से पढ़ें ... –

+2

मुझे आपकी एक ही समस्या थी और इसे हल किया गया ... –

+1

मेरे लिए काम किया। ध्यान दें कि अंतिम चरण (आपका समाधान बनाना) महत्वपूर्ण है। +1 – ForeverWintr