में विरासत नियंत्रणों तक पहुंच कैसे प्राप्त करें मैं कुछ नियंत्रण कर रहा हूं जो सभी को समान दिखने और कुछ सामान्य व्यवहार साझा करना है, हालांकि वे विभिन्न प्रकार के इनपुट के लिए हैं। इसलिए मैंने बेस क्लास बनाया जो उपयोगकर्ता नियंत्रण से प्राप्त होता है, और मेरे सभी नियंत्रण बेस क्लास से प्राप्त होते हैं।Winforms डिजाइनर
हालांकि, अगर मैं डिज़ाइनर में बेस क्लास के लिए नियंत्रण जोड़ता हूं, जैसे कि TableLayoutPanel, जब मैं विरासत कक्षाओं को डिज़ाइन कर रहा हूं तो मैं उन तक नहीं पहुंच सकता। मैं TableLayoutPanel देखता हूं, लेकिन भले ही वह "संरक्षित" है, मैं इसे संशोधित नहीं कर सकता या डिजाइनर के माध्यम से इसमें नियंत्रण नहीं डाल सकता। मुझे कोड द्वारा इसे accesing कोई परेशानी नहीं है, लेकिन मैं डिजाइनर का उपयोग करने की क्षमता खोना नहीं चाहता।
अभी, मैंने बस बेसक्लास से सभी नियंत्रण हटा दिए हैं, विरासत वर्ग में प्रत्येक लेआउट और सभी सामान्य नियंत्रण जोड़े हैं, फिर बेसक्लास के अंदर उन्हें कुशल बनाने के लिए संदर्भों का उपयोग करें। लेकिन यह मुझे बिल्कुल संतुष्ट नहीं करता है। क्या संरक्षित संरक्षित सदस्य नियंत्रण के साथ डिजाइनर को काम करने का कोई तरीका है?
पर्यावरण: सी #, .NET 3.5, विजुअल स्टूडियो 2008
संपादित SLaks के सुझाव जवाब देने के लिए। मैंने एक संपत्ति स्थापित करने की कोशिश की, और हालांकि मुझे उनका उपयोग करने के लिए उपयोग नहीं किया जाता है, यह काम नहीं कर रहा है। यहां कोड मैंने कोशिश की है:
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
public TableLayoutPanel TableLayoutPanel1
{
get { return tableLayoutPanel1;}
set { tableLayoutPanel1 = value;}
}
}
public partial class UserControl2 : UserControl1
{
public UserControl2()
{
InitializeComponent();
}
}
क्या आप टेबललेआउट पैनेल से ही उत्तराधिकारी बन सकेंगे? – SLaks
निश्चित रूप से, आप हमेशा Winforms नियंत्रण से विरासत में अपना नियंत्रण बना सकते हैं। मैंने कुछ नियंत्रण लागू करने के लिए यह किया। लेकिन यह वह नहीं है जिसे मैं यहां हासिल करने की कोशिश कर रहा हूं। मैं अंदर कई बुनियादी नियंत्रणों के साथ नियंत्रण रखने की कोशिश कर रहा हूं: एक tablelayoutpanel, इसमें कुछ नियंत्रण (जैसे एक लेबल) के साथ, और कई खाली रिक्त स्थान जिन्हें वंचित वर्गों को अपनी पसंद के नियंत्रण से भरना चाहिए। अंतिम लक्ष्य टूलबॉक्स में सभी थेस नियंत्रणों को जोड़ना है और फिर उन्हें डिज़ाइन करने के लिए डिज़ाइनर में डालना और ड्रॉप करना है जिनके पास कई नियंत्रण हैं लेकिन अभ्यास नियंत्रण में सामान्य व्यवहार/लेआउट है। – Ksempac
और बीटीडब्ल्यू, एक विनफॉर्म नियंत्रण से विरासत में डिज़ाइनर काट देगा, आमतौर पर, बिंदु केवल एक विशिष्ट व्यवहार को लागू करने के लिए है, न कि नियंत्रण को फिर से डिजाइन करना। – Ksempac