سؤال

لدي خط اللون الملكية في العرف التحكم الشبكة.أريد أن التقصير ، Drawing.SystemColors.InactiveBorder.حاولت:

[DefaultValue(typeof(System.Drawing.SystemColors), "InactiveBorder")]
public Color LineColor { get; set; }

ولكن لا يبدو أن العمل.كيف أفعل ذلك مع القيمة الافتراضية الخاصية ؟

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

المحلول

هذا قد يساعد في: http://support.microsoft.com/kb/311339 - وهي مقالة بعنوان "وثائق MSDN على DefaultValueAttribute فئة قد تكون مربكة"

نصائح أخرى

كنت بحاجة إلى تغيير الحجة الأولى من SystemColors إلى Color.
يبدو أنه لا يوجد أي نوع محول عن SystemColors نوع, فقط Color نوع.

[DefaultValue(typeof(Color),"InactiveBorder")]

وفقا رابط مات نشرها ، DefaultValue السمة لا يتم تعيين القيمة الافتراضية الملكية ، فإنه يتيح مجرد شكل مصمم تعرف أن مكان الإقامة وقد القيمة الافتراضية.إذا قمت بتغيير خاصية القيمة الافتراضية كما هو مبين جريئة في الإطار "خصائص".

لا يمكنك تعيين قيمة افتراضية باستخدام التلقائي خصائص - عليك أن تفعل ذلك بالطريقة القديمة:

class MyClass
{
    Color lineColor = SystemColors.InactiveBorder;

    [DefaultValue(true)]
    public Color LineColor {
        get {
            return lineColor;
        }

        set {
            lineColor = value;
        }
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top