إضافة DataGridViewColumn Property Time
-
02-10-2019 - |
سؤال
لديّ هذه المشكلة ، لقد قمت بإنشاء DataGridViewColumn وأتمنى إضافة بعض الخصائص التي يمكنك تغييرها في تحرير وقت التصميم ... إليك رمزتي:
private int nMaxLength;
[Description("Fondoscala valore"), Category("Sea")]
public int MaxLength
{
get { return nMaxLength; }
set { nMaxLength = value; }
}
وفي الواقع على ما يرام ، عندما تفتح محرر العمود ، ترى هذا الخاصية ضمن فئة البحر ويمكنك التغيير ، ولكن عندما قمت بتغييره ، إذا ذهبت إلى ملف .designer.cs ، سترى قيمة الطول إلى 0 .. لا تغيير ... ما هي المشكلة ؟؟ شكرا مقدما
المحلول
يقوم مصمم النماذج ببعض الخداع الداخلية للسماح لك بتغيير نوع العمود (على سبيل المثال من DataGridViewTextBoxColumn
إلى DataGridViewButtonColumn
) في وقت التصميم. نتيجة لهذا ، يعتمد المصمم على فئة الفرعية الخاصة بك DataGridViewColumn
وجود تنفيذ بشكل صحيح Clone()
الطريقة ، أي:
public override object Clone() {
MyDataGridViewColumn that = (MyDataGridViewColumn)base.Clone();
that.MaxLength = this.MaxLength;
return that;
}
إذا لم تتجاوز Clone()
الطريقة ، لن يرتكب المصمم أي تغييرات تقوم بقيمها على قيم الخصائص المخصصة.
لا تنتمي إلى StackOverflow