2010-03-21 10 views
14

मेरे पास एक WinForm प्रोजेक्ट है जिसमें मेनयूआई नामक एक फॉर्म है। आप देख सकते हैं कि स्वचालित रूप से जेनरेट की गई आंशिक कक्षा MainUI.cs के तहत नोड के रूप में दिखाई देती है। क्या MainUI.cs के तहत मेरे स्वयं निर्मित आंशिक वर्ग MainUI.Other.cs को "स्थानांतरित करने" का कोई तरीका है ताकि यह एक और नोड के रूप में दिखाया जा सके?विनफॉर्म आंशिक कक्षा

alt text http://i42.tinypic.com/dnkoyo.jpg

उत्तर

12

विजुअल स्टूडियो में समाधान बंद करें, और एक टेक्स्ट एडिटर में अपनी .csproj फ़ाइल खोलें। MainUI.Other.cs खोजें, और निम्नलिखित XML तत्व जोड़ें:

<Compile Include="MainUI.Other.cs"> 
    <SubType>Form</SubType> 
    <DependentUpon>MainUI.cs</DependentUpon> <!-- this is the magic incantation --> 
</Compile> 

दृश्य स्टूडियो में समाधान को फिर से खोलें और subnodular अच्छाई का आनंद लें।

उस ने कहा, आप पुनर्विचार करना चाहेंगे कि यह एक अच्छा विचार है या नहीं। कारण .designer.cs फ़ाइल को उपनोड के रूप में प्रदर्शित किया जाता है क्योंकि आपको सामान्य रूप से इसकी आवश्यकता नहीं होती है या इसे खोलना नहीं है, क्योंकि इसमें जेनरेट कोड होता है जिसे आप आमतौर पर डिज़ाइनर के माध्यम से देखते या संपादित करते हैं। जबकि आंशिक कक्षा फ़ाइल में आपके कोड होंगे, जिन्हें आप संपादित और देखना चाहते हैं; यह रखरखाव प्रोग्रामर को भ्रमित कर सकता है अगर फ़ाइल समाधान एक्सप्लोरर में आसानी से दिखाई नहीं दे रही है। हालांकि, केवल आप ही जान सकते हैं कि आपके प्रोजेक्ट के लिए क्या सही है - बस कुछ ध्यान में रखना!

+0

नोट - यदि आपकी "निर्भरता" फ़ाइल सबफ़ोल्डर में है तो भले ही यह के रूप में कहीं और दिखाई दे, लेकिन आपको अभी भी फ़ाइल नाम का उपयोग करना चाहिए जब आप करते हैं इस। –

0

आप संबंधित फ़ाइलें समूह के लिए परियोजना स्रोत फ़ाइल को संशोधित कर सकते हैं। प्रोजेक्ट स्रोत फ़ाइल में, आइटम समूह समूह जिसमें मुख्यUI.cs शामिल है और MainUI.Others.cs

यहां एक ब्लॉग पोस्ट दिखा रहा है कि विवरण में इसे कैसे किया जाए। Group/nest source code files

1

हां, यह संभव है, लेकिन आपको प्रोजेक्ट फ़ाइल को संपादित करना होगा।

प्रोजेक्ट फ़ाइल में (इसे XML संपादक के साथ खोलें) फ़ाइल लिस्टिंग आइटम समूह का पता लगाएं। मेरे उदाहरण में, मैंने फ़ॉर्म को "फॉर्म 1.cs" के रूप में छोड़ा। आमतौर पर

<Compile Include="Form1.cs"> 
     <SubType>Form</SubType> 
    </Compile> 
    <Compile Include="Form1.Designer.cs"> 
     <DependentUpon>Form1.cs</DependentUpon> 
    </Compile> 
    <Compile Include="Form1.Designer.Other.cs"> 
     <DependentUpon>Form1.cs</DependentUpon> 
     <SubType>Form</SubType> 
    </Compile> 

आप किसी भी गैर उत्पन्न कोड हालांकि एक बच्चे नोड के रूप में छिपा हो नहीं करना चाहते, हालांकि: नीचे दिए गए उदाहरण के अनुसार अपने विस्तारित वर्ग के लिए चाइल्ड तत्व "<DependentUpon>" जोड़ें। मेरा सामान्य अभ्यास "आंशिक वर्ग" नामक प्रोजेक्ट में फ़ोल्डर बनाना है और उन्हें सभी को एक ही स्थान पर जोड़ना है।

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