दिलचस्प पोस्ट
बुफ़र्ड फाइलें (तेज डिस्क एक्सेस के लिए) जावास्क्रिप्ट में वस्तुओं की एक सरणी में एक मान खोजें जब भी मैं कोई नया प्रोजेक्ट तैयार करता हूं, तो एक्लिप्स स्वचालित रूप से ऐपकामपेट v7 लाइब्रेरी समर्थन क्यों जोड़ता है? प्रकार 'System.Runtime.CompilerServices.ExtensionAttribute' विधानसभा 'mscorlib से लोड नहीं किया जा सका न्यूनतम 6 अक्षर, कम से कम एक अक्षर और एक नंबर के साथ पासवर्ड रीगेक्स और इसमें विशेष वर्ण हो सकते हैं पायथन में विखंडू (एन) के द्वारा एक इटरेटर को दोहराएं? पता लगाएँ कि मूल्य MySQL में नंबर है MySQL अनुक्रमित कैसे काम करते हैं? पादलेख को पृष्ठ के निचले भाग से सही बनाएं मेरी MySQLi क्वेरी के लिए त्रुटियाँ कैसे प्रदर्शित करें? सी # LINQ सूची में डुप्लिकेट पाते हैं घातक कोर जब http: // स्थानीयहोस्ट मूल है बेतरतीब ढंग से एक सौंदर्यशास्त्र-मनोरंजक रंग पैलेट उत्पन्न करने के लिए एल्गोरिथ्म JSONP सभी के बारे में क्या है? बाधाओं को सक्षम करने में विफल एक या अधिक पंक्तियों में गैर-अशक्त, अनूठे, या विदेशी-प्रमुख बाधाओं का उल्लंघन करने वाले मान शामिल हैं

कस्टम नियंत्रण में डिज़ाइन समर्थन को कैसे सक्षम करें?

मैं समझाने की कोशिश करूँगा कि मैं क्या हूं। मैं इसके लिए तकनीकी शब्द नहीं जानता, तो यहां यहां जाता है:

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

उदाहरण 2: अब, मैं एक UserVontrol में एक ListView रखता हूं और इसे "MyCustomListView" नाम देता हूं (और शायद इसे किसी भी तरह से बढ़ाने के लिए कुछ तरीके जोड़)

अगर मुझे पता है कि "माइक्रुमस्तलिस्ट दृश्य" एक प्रपत्र पर है, तो मैं उन्हें डिज़ाइन-टाइम में बदलने के लिए कॉलम हेडर क्लिक-और-खींचने में असमर्थ हूं I

क्या ऐसा आसानी से करने के लिए कोई रास्ता है? कुछ प्रकार के "अंतर्निहित नियंत्रण में क्लिक-और-खींचें इवेंट पास करें और यह नियंत्रण अपने जादू को दें" । मैं वास्तव में याद दिलाने के लिए नहीं देख रहा हूँ, बस माउसक्लिक (या जो भी हो) पर गुजारें और इस मामले में, सूचीईई प्रतिक्रिया दें जैसा कि ऊपर की पहली उदाहरण में किया था।

वेब के समाधान से एकत्रित समाधान "कस्टम नियंत्रण में डिज़ाइन समर्थन को कैसे सक्षम करें?"

विंडोज फॉर्म डिज़ाइनर ने अधिकांश नियंत्रणों के लिए डिज़ाइनर वर्ग समर्पित किए हैं। एक ListView के लिए डिजाइनर System.Windows.Forms.Design.ListViewDesigner, System.Design.dll विधानसभा में एक आंतरिक वर्ग है। यह वर्ग आपको स्तंभ शीर्षकों को खींचने की क्षमता देता है

एक UserControl System.Windows.Forms.Design.ControlDesigner डिजाइनर वर्ग का उपयोग करता है। यह कुछ विशेष नहीं करता, बस खींचें हैंडल के साथ नियंत्रण के चारों ओर एक आयताकार डालता है। आप यह देख सकते हैं कि यह कहां है: आपके द्वारा उपयोगकर्ता के नियंत्रण को किसी प्रपत्र पर रखने के बाद, यह नियंत्रणडिजाइनर है जिसे क्लास को डिज़ाइन करने के लिए उपयोग किया जाता है, लिस्ट्यूव्यूडिज़ाइन चित्र में नहीं है। आप स्तंभ शीर्षकों को खींचने की क्षमता खो देते हैं। यह भी ध्यान रखें कि ControlDesigner यूसी के अंदर नियंत्रणों तक पहुंच नहीं देता है।

यह आपके खुद के डिज़ाइनर को बनाकर तय किया जा सकता है। परियोजनाओं के साथ शुरू करें + संदर्भ जोड़ें, सिस्टम चुनें। डिजाइन करें। सूची दृश्य को उजागर करने के लिए आपको एक सार्वजनिक संपत्ति को यूसी में जोड़ना होगा और [DesignerSerializationVisibility] विशेषता को परिवर्तित करने के लिए परिवर्तित गुणों को सहेजना होगा। और डिफ़ॉल्ट डिज़ाइनर को बदलने के लिए यूसी वर्ग में [डिजाइनर] विशेषता को लागू करें। यह सभी को इस तरह दिखना चाहिए (डिफ़ॉल्ट नाम और एक ListView जो "कर्मचारी" दिखाता है का उपयोग करके):

using System; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; using System.Windows.Forms.Design; // Note: add reference required: System.Design.dll namespace WindowsFormsApplication1 { [Designer(typeof(MyDesigner))] // Note: custom designer public partial class UserControl1 : UserControl { public UserControl1() { InitializeComponent(); } // Note: property added [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] public ListView Employees { get { return listView1; } } } // Note: custom designer class added class MyDesigner : ControlDesigner { public override void Initialize(IComponent comp) { base.Initialize(comp); var uc = (UserControl1)comp; EnableDesignMode(uc.Employees, "Employees"); } } } 

उपयोगकर्ता नियंत्रण में सूची दृश्य अब क्लिक और सामान्य रूप में तैयार किया जा सकता है।