مشاركة عبر


الإرشادات التفصيلية: إجراء تسلسل مجموعات لأنواع قياسية باستخدام DesignerSerializationVisibilityAttribute

في بعض الأحيان إلى عناصر التحكم المخصصة الخاصة بك بكشف مجموعة كـ خاصية. Th هو معاينة يوضح كيفية استخدام DesignerSerializationVisibilityAttributeلفئة للتحكم في كيفية مجموعة هو تسلسل في وقت التصميم. تطبيق Contentالالقيمة إلى خصائص المجموعة الخاصة بك يضمن تسلسل خاصية.

لنسخ التعليمة البرمجية في هذا الموضوع كقائمة واحدة, راجع كيفية: إجراء تسلسل مجموعات أنواع قياسية مع DesignerSerializationVisibilityAttribute.

ملاحظة

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

المتطلبات الأساسية

لإكمال هذه المعاينة ، سوف تحتاج إلى :

  • permهوsions كافية لكي تكون قادراً تشغيل إنشاء وتشغيل مشاريع تطبيق Windows Forms تشغيل الكمبيوتر الموقع Studio Vهوual هو مثبتة.

إنشاء عنصر تحكم التي له مجموعة قابل للتسلسل

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

إلى إنشاء عنصر تحكم بمجموعة قابل للتسلسل

  1. قم بإنشاء مشروع Windows عنصر تحكم مكتبة تسمى من SerializationDemoعنصر تحكمLib. لمزيد من المعلومات، راجع قالب مكتبة التحكم Windows.

  2. إعادة تسميةUserControl1إلىSerializationDemoControl. لمزيد من المعلومات، راجع How to: Rename Identifiers.

  3. في نافذة الخصائص، قم بتعيين القيمة Padding.All خاصية إلى 10 .

  4. بوضع TextBoxالتحكم في SerializationDemoControl.

  5. حدد عنصر التحكم TextBox. في الإطار خصائص، قم بتعيين الخصائص التالية.

    الخصائص

    تغيير إلى

    Multiline

    true

    إرساء

    Fill

    أشرطة _ التمرير

    Vertical

    للقراءة فقط

    true

  6. في محرر تعليمات برمجية، قم بتعريف حقل صفيفة سلسلة باسم stringsValueفي SerializationDemoControl.

    ' This field backs the Strings property.
     Private stringsValue(1) As String
    
    // This field backs the Strings property.
    private String[] stringsValue = new String[1];
    
            // This field backs the Strings property.
        private:
            array<String^>^ stringsValue;
    
    
    
  7. بتعريف Stringsخاصية تشغيل SerializationDemoControl.

ملاحظة

Contentالقيمة هو لتمكين إنشاء تسلسل للمجموعة.

' When the DesignerSerializationVisibility attribute has
' a value of "Content" or "Visible" the designer will 
' serialize the property. This property can also be edited 
' at design time with a CollectionEditor.
 <DesignerSerializationVisibility( _
     DesignerSerializationVisibility.Content)> _
 Public Property Strings() As String()
     Get
         Return Me.stringsValue
     End Get
     Set(ByVal value As String())
         Me.stringsValue = Value

         ' Populate the contained TextBox with the values
         ' in the stringsValue array.
         Dim sb As New StringBuilder(Me.stringsValue.Length)

         Dim i As Integer
         For i = 0 To (Me.stringsValue.Length) - 1
             sb.Append(Me.stringsValue(i))
             sb.Append(ControlChars.Cr + ControlChars.Lf)
         Next i

         Me.textBox1.Text = sb.ToString()
     End Set
 End Property
// When the DesignerSerializationVisibility attribute has
// a value of "Content" or "Visible" the designer will 
// serialize the property. This property can also be edited 
// at design time with a CollectionEditor.
[DesignerSerializationVisibility( 
    DesignerSerializationVisibility.Content )]
public String[] Strings
{
    get
    {
        return this.stringsValue;
    }
    set
    {
        this.stringsValue = value;

        // Populate the contained TextBox with the values
        // in the stringsValue array.
        StringBuilder sb = 
            new StringBuilder(this.stringsValue.Length);

        for (int i = 0; i < this.stringsValue.Length; i++)
        {
            sb.Append(this.stringsValue[i]);
            sb.Append("\r\n");
        }

        this.textBox1.Text = sb.ToString();
    }
}
    // When the DesignerSerializationVisibility attribute has
    // a value of "Content" or "Visible" the designer will 
    // serialize the property. This property can also be edited 
    // at design time with a CollectionEditor.
public:
    [DesignerSerializationVisibility(
        DesignerSerializationVisibility::Content)]
    property array<String^>^ Strings
    {
        array<String^>^ get()
        {
            return this->stringsValue;
        }
        void set(array<String^>^ value)
        {
            this->stringsValue = value;

            // Populate the contained TextBox with the values
            // in the stringsValue array.
            StringBuilder^ sb =
                gcnew StringBuilder(this->stringsValue->Length);

            for (int i = 0; i < this->stringsValue->Length; i++)
            {
                sb->Append(this->stringsValue[i]);
                sb->Append(Environment::NewLine);
            }

            this->demoControlTextBox->Text = sb->ToString();
        }
    }

ملاحظة

سلاسل التي كتبتها تظهر في TextBoxمن SerializationDemoControl.

سلسلة خصائص مجموعة

لاختبار سلوك إنشاء تسلسل الخاص بك عنصر تحكم، سيتم وضعه تشغيل نموذج وقم بتغيير محتويات المجموعة مع محرر مجموعة. يمكنك مشاهدة الولاية مجموعة المتسلسلة بالنظر في ملف مصمم خاص، حيث emits مصمم Windows Forms تعليمات برمجية.

إلى إجراء تسلسل لمجموعة

  1. قم بإضافة Windows تطبيق مشروع إلى الحل. لمزيد من المعلومات، راجع Add New Project Dialog Box. قم بتسمية مشروع من SerializationDemoControlTest.

  2. في مربع أدوات التحكم، بحث علامة تبويب المسمى مكونات SerializationDemoControlLib. في علامة تبويب هذه، سوف بحث SerializationDemoControl. لمزيد من المعلومات، راجع الإرشادات التفصيلية: تلقائياً بملء مربع أدوات التحكم مع مخصص المكونات.

  3. بوضع SerializationDemoControlتشغيل جهاز نموذج.

  4. بحث Stringsخاصية في نافذة خصائص . انقر فوق Stringsخاصية، ثم انقر فوق علامة القطع ( لقطة شاشة لـ VisualStudioEllipsesButton) زر لفتح محرر مجموعة السلاسل.

  5. اكتب سلاسل متعددة في محرر مجموعة السلاسل. الفصل بينها بواسطة الضغط على المفتاح Enter الزر عند إنهاء كل سلسلة. انقر فوق ‏‏موافق عندما تنتهي من إدخال سلاسل.

ملاحظة

سلاسل التي كتبتها تظهر في TextBoxمن SerializationDemoControl.

  1. في مستكشف الحلول، انقر فوق الزر عرض جميع الملفات.

  2. فتح العقدة Form1. تحته هو ملف يسمى Form1.مصمم.cs أو Form1.مصمم.vb . هذا ملف الذي emits مصمم Windows Forms رمز يمثل الولاية وقت تصميم النموذج الخاص بك وعناصر التحكم التابعة الخاصة به. قم بفتح هذا الملف في محرر تعليمات برمجية.

  3. قم بفتح المنطقة التي تسمى Windows نموذج مصمم إنشاء تعليمات برمجية و العثور على القسم المسمى serializationDemoControl1 . تحت هذه التسمية هو رمز يمثل الولاية تحويل بياناتها إلى ملف الخاصة بك عنصر تحكم. تظهر السلاسل التي كتبتها في الخطوة 5 في تعيين إلى Stringsخاصية. يظهر المثال التالي تعليمات برمجية تعليمات برمجية مشابهة إلى ما سيظهر لك إذا قمت بكتابته على سلاسل "الاحمر"، "برتقالي"، و "اصفر".

  4. [Visual Basic]

    Me.serializationDemoControl1.Strings = New String() {"red", "orange", "yellow"}
    
  5. [#C]

    this.serializationDemoControl1.Strings = new string[] {
            "red",
            "orange",
            "yellow"};
    
  6. في محرر تعليمات برمجية، قم بتغيير القيمة DesignerSerializationVisibilityAttributeتشغيل Stringsخاصية إلى Hidden.

  7. [Visual Basic]

    <DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _
    
  8. [#C]

    [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
    
  9. قم بإعادة إنشاء الحل و تكرار الخطوات من 4 إلى 8.

ملاحظة

في هذه الحالة، emits مصمم Windows Forms لا التعيين إلى Stringsخاصية.

الخطوات التالية

بمجرد أن كنت تعرف كيفية إلى إجراء تسلسل لمجموعة من أنواع قياسية، خذ في الاعتبار تكامل عناصر التحكم cusإلىm أكثر بشكل عميق في إلى بيئة وقت التصميم. صور إلى التالية تصف كيفية إلى تحسين تكامل عناصر التحكم cusإلىm بوقت التصميم:

راجع أيضًا:

المهام

كيفية: إجراء تسلسل مجموعات أنواع قياسية مع DesignerSerializationVisibilityAttribute

الإرشادات التفصيلية: تلقائياً بملء مربع أدوات التحكم مع مخصص المكونات

المرجع

DesignerSerializationVisibilityAttribute

المبادئ

نظرة عامة حول التسلسل المصمم