2013-10-04 4 views
5

तो आज, मैंने विजुअल स्टूडियो 2012 का उपयोग करके सी # में एक कस्टम टेक्स्टबटन नियंत्रण बनाने का फैसला किया। मुझे लगता है कि मैंने जो डिज़ाइन बनाया है, उतना ही सरल है। हालांकि, जब मैंने फैसला किया कि मैं विजुअल स्टूडियो डिजाइनर का उपयोग करके अपना पूरा घटक एक फॉर्म में ले जाऊंगा, तो मैं एक झटके में भाग गया। यद्यपि टेक्स्ट प्रॉपर्टी गुण सूची में दिखाई देती है, लेकिन संपत्ति वास्तव में MainWindow.Designer.cs फ़ाइल में नहीं बदला जा रहा है। यहाँउपयोगकर्ता नियंत्रण नियंत्रण स्टूडियो डिजाइनर में संपत्ति दिखाता है, लेकिन संपत्ति बदल नहीं है

[Category("Appearance")] 
[Description("The text displayed by the control.")] 
[Browsable(true), EditorBrowsable(EditorBrowsableState.Always)] 
public override string Text 
{ 
    get 
    { 
     return Button.Text; 
    } 
    set 
    { 
     Button.Text = value; 
    } 
} 

और कोड है कि मेरे MainWindow.Designer.cs फ़ाइल InitializeComponent विधि में पैदा कर रही है है: नीचे दिए गए कोड है कि संपत्ति को परिभाषित करता है

समस्या का
this.Open = new UI.Controls.TextButton(); 
this.Open.Location = new System.Drawing.Point(9, 3); 
this.Open.Name = "Open"; 
this.Open.Size = new System.Drawing.Size(112, 28); 
this.Open.TabIndex = 4; 
this.Open.Click += new System.EventHandler(this.OpenButton_Click); 
+0

क्या यह उपयोगकर्ता नियंत्रण या कस्टम नियंत्रण है, संक्षेप में आप बटन से विरासत में हैं। –

+0

यह सिस्टम के साथ एक UserControl है। Windows.Forms.Button नियंत्रण के पूरे दृश्य को लेने के लिए बीच में डॉक किया गया। – NoahWillCrow

उत्तर

5

भाग है कि आप है UserControl'sText संपत्ति ओवरराइड कर रहे हैं। यदि आप Text के अलावा myText के अलावा अपनी संपत्ति का नाम दूसरे नाम का नाम दें तो यह काम करेगा। Text का उपयोग कर रहे समस्या को ठीक करने के लिए DesignerSerializationVisibility अपनी संपत्ति में विशेषता जोड़ने का प्रयास करें, इसकी देखभाल करनी चाहिए।

[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] 
संबंधित मुद्दे