2010-01-26 14 views
20

संभव डुप्लिकेट: System.ComponentModel.Component उनकी विरासत पथ पर साथ
Is there an attribute I can add to a class so it will be edited as code, not in the designer?क्या विजुअल स्टूडियो को एक स्रोत फ़ाइल को "घटक" के रूप में नहीं मानना ​​संभव है?

कक्षा स्वचालित रूप से दृश्य स्टूडियो (2008) के भीतर "घटक", स्रोत फ़ाइल के लिए एक अलग चिह्न ट्रिगर के रूप में इलाज कर रहे हैं:

http://i48.tinypic.com/1z23wvn.png

जबकि आइकन हिरण वास्तव में कोई फर्क नहीं पड़ता, बदले गए डबल क्लिक व्यवहार वास्तव में परेशान हैं: पाठ संपादक में स्रोत कोड खोलने के बजाय, विजुअल स्टूडियो अब मुझे एक स्क्रीन दिखाता है जो मुझे "टूलबॉक्स से" खींचकर मेरी कक्षा में घटकों को जोड़ने के लिए प्रोत्साहित करता है। मैं यह करना नहीं चाहता!

मुझे पता है कि मैं सही स्रोत फ़ाइल क्लिक करें और "देखें कोड" का चयन कर सकते है, लेकिन जब भी मैं यह करने के लिए भूल जाते हैं, मैं एक संवाद है जो बिल्कुल बेकार है के लिए इंतज़ार कर अटक कर रहा हूँ। घटक व्यवहार को अक्षम करने का कोई तरीका है (अधिमानतः स्रोत कोड में)?

+0

आप संवाद के लिए इंतज़ार कर अटक कर रहे हैं, आपके कंप्यूटर भी है एक डेवलपर मशीन के लिए धीमा :) एक ही चीज तब होती है जब आप किसी फॉर्म या नियंत्रण के लिए आंशिक क्लास फ़ाइल जोड़ना चुनते हैं। यद्यपि यह मूल रूप से एक अलग कोड-केवल फ़ाइल है, यह एक डिजाइनर खोल देगा (और यह है, अगर मुझे सही याद है, वास्तविक रूप के लिए नहीं)। परेशान, लेकिन मैं उन फ़ाइलों पर राइट-क्लिक-> कोड देखें, जिनके पास सादे कोड प्रतीक नहीं है। – OregonGhost

+1

हे, यह अब यह संवाद खोलने के लिए काफी समय लेता है, लेकिन अधिक है कि यह पता लगाने के लिए कि कोई त्रुटि हुई :) –

+1

इसके अलावा, प्रश्न में परियोजना * नहीं * WinForms है मेरे मस्तिष्क में कई घड़ी चक्र लेता है की तरह है, तो मुझे वास्तव में यह अनुचित लगता है कि वीएस मुझे अपने अजीब डिजाइनरों के साथ चिपका रहा है। –

उत्तर

40

आप अपने वर्ग को सजाने के लिए DesignerCategory विशेषता का उपयोग नहीं कर सकते?

जब नीचे प्रदर्शित की तरह इस विशेषता के साथ अपने वर्ग सजाने, फ़ाइल 'कोड दृश्य' में खोलने चाहिए जब आप दोगुना यह क्लिक करें:

[System.ComponentModel.DesignerCategory("Code")] 
public class MyComponent 
{ 
} 
+5

बिल्कुल! यह वास्तव में अजीब है कि आपके पास इस विशेषता के लिए पूरी तरह से योग्य नाम का उपयोग करना है, हालांकि :) –

+2

भविष्य पाठकों को ध्यान से @ जोर्नशू-रोड की टिप्पणी ध्यान दें।ऐसा लगता है कि यह केवल तभी काम करता है जब आप विशेषता के पूर्ण योग्य नाम का उपयोग करते हैं। – Boinst

+0

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

3

रूप OregonGhost पहले से ही अपने टिप्पणी में उल्लेख किया है यह भी होता है अगर आप एक रूप से एक आंशिक वर्ग फ़ाइल बनाते हैं।

समस्या और भी बदतर है। आप अपने प्रोजेक्ट फाइल में एक बार देख ले, तो आप पा सकते हैं हर फ़ाइल के लिए प्रविष्टियों इस तरह शामिल हैं:

<Compile Include="FormMain.cs"> 
    <SubType>Form</SubType> 
</Compile> 

तो समाधान कारण यह सभी समस्याओं की जड़ हो रहा है लाइन <SubType>...</SubType> नष्ट करने के लिए होना चाहिए। लेकिन अगर आप इस लाइन को हटाते हैं, तो फाइल को सेव करें, इसे विजुअल स्टूडियो में खोलें, इसे फिर से सहेजें और फिर से देखें, लाइन फिर से दिखाई देगी!

वहाँ दृश्य स्टूडियो के अंदर केवल एक हार्ड-कोडेड अपवाद प्रतीत हो रहा है और यह है * .Designer.cs। तो इस समस्या को पूरा करने के लिए कोई समाधान नहीं है।

0

आप स्रोत फ़ाइल को राइट-क्लिक कर सकता है, चुनें "देखें कोड", फिर "डिफ़ॉल्ट के रूप में सेट" पर क्लिक करें। यह एक ब्लंट वाद्य यंत्र का थोड़ा सा है, लेकिन यदि आपके वास्तविक घटकों की तुलना में आपके समाधान में अधिक झूठे घटक हैं, तो आप इसे सुविधाजनक पा सकते हैं।

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

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