كيف يمكن منع القيم "الافتراضي" في الضوابط WinForm متجاوزة؟

StackOverflow https://stackoverflow.com/questions/637222

  •  10-07-2019
  •  | 
  •  

سؤال

وأنا أحاول أن تعلم وفهم ماذا وكيف C # يفعل الأشياء. أنا تاريخيا الفوكس برو (VFP) المطور البصرية، وأفسد بعض الشيء في السنوات الميراث البصرية من خلال خلق بلدي خط الأساس الخاصة بها المستخدم ضوابط لاستخدامه تطبيق على نطاق واسع.

في محاولة لمعرفة أوجه التشابه في C #، أنا عالقة على شيء. أقول استخلاص بلدي تحكم التسمية الخاصة (السيطرة هي فئة فرعية من التسمية) المعرفة مع خط "ارييل"، 10 نقطة. ثم، على أي شكل I إضافته إلى ومصمم تلقائيا قبل ملء بعض القيم الممتلكات التي يمكن أن ينظر إليها في الجزء "Designer.cs" من فئة النموذج.

this.LabelHdr2.AutoSize = true;
this.LabelHdr2.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold);
this.LabelHdr2.ForeColor = System.Drawing.Color.Blue;
this.LabelHdr2.Location = new System.Drawing.Point(150, 65);
this.LabelHdr2.Name = "LabelHdr2";
this.LabelHdr2.Size = new System.Drawing.Size(158, 22);
this.LabelHdr2.TabIndex = 5;
this.LabelHdr2.Text = "LabelHdr2";

وأريد أن منع أشياء مثل الخط، اللون، الحجم، AutoSize من الحصول على ولدت في كل مرة يتم وضع عنصر تحكم في النموذج. إذا كنت في وقت لاحق قررت تغيير الخط من "ارييل" 10، إلى "نوع تهامه" 11، وأود أن أعود إلى جميع أشكال (ومهما عناصر التحكم المخصصة الأخرى) وتحرير لتغيير مكان.

في VFP، إذا قمت بتغيير أي شيء من baseclass بلدي، وجميع أشكال تعترف التغييرات تلقائيا. أنا لم يكن لديك لتعديل أي شيء (مع استثناء من التحالفات الممكنة عبر التأثيرات التحجيم) ... ولكن اللون والخط، وكلها آخر أي مشاكل في VFP ...

في C #، لا بد لي من العودة وتغيير كل النموذج بحيث تعترف بها القيم الجديدة / محدثة من الدرجة ...

هل هناك طريقة معقولة لتفادي هذا؟

هل كانت مفيدة؟

نصائح أخرى

وبدلا من استخدام "ReadOnlyAttribute"، حاول استخدام "<لأ href =" http://msdn.microsoft.com/en-us/library/system.componentmodel.defaultvalueattribute.aspx "يختلط =" نوفولو noreferrer " > DefaultValueAttribute "بدلا من ذلك. إذا كنت أتذكر بشكل صحيح، ينبغي للمصمم لا يخلق رمز لتعيين الخاصية إذا كانت القيمة الحالية يطابق القيمة المخزنة في "DefaultValueAttribute".

وحاول إضافة سمة للقراءة فقط للل خصائص الطبقات مشتقة:

[ReadOnly(true)]
public override Font Font
{
    get{ // Your Implementation Here }
    set{ // Don't really care,do you? }
}

ووReadOnlyAttribute يجب فرض سلوك للقراءة فقط في وقت التصميم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top