الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

إليكم درس قصير في استخدام الخاصية Tag

بدأه حسام الشامي في 12 ديسمبر 2011 · 4 رد · 1,530 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته .

  1. الخاصية Tag معرفة في الصف Control أي أنها موجودة في كل الصفوف التي ترث من هذا الصف و هي معظم المكونات المرئية التي يمكن سحبها من صندوق الأدوات على الفورم .
  2. تستخدم الخاصية Tag لربط كائن ما بالــ Control و غالبا الكائن هذا يكون من طبقة Business Layer و الــ Control يكون في طبقة الــ GUI , لكن بشكل عام يمكن استخدامها للربط مع أي كائن أو Control.
  3. الخاصية Tag من نوع Object و هو الأب الأعلى لجميع صفوف الدوت نت و بالتالي الخاصية Tag ممكن أن تشير إلى (تخزن) أي كائن من أي نوع ..
  4. المثال : سنأخذ مثال هو شجرة الحسابات , حيث أن كل حساب فيها له اسم و رقم و رصيد و معلومات أخرى و نريد إظهار أسماء هذه الحسابات على TreeView و عندما يقوم المستخدم بتحديد إحدى عقد TreeNode الشجرة تظهر المعلومات التفصيلية عن الحساب .
    1. الــ Business Layer Object هو AccountInfo و هو صف بسيط فيه معلومات الحساب .
    2. الــ Control هو TreeNode.
    3. ربط الــ Control بالــ Business Layer Object : يكون ببساطة باسناد الــ Reference (اسم المتحول في الكود) الخاص بالكائن إلة الخاصية Tag , مثال :

      TreeNode newTreeNode = new TreeNode();
      newTreeNode.Tag = accountInfo
    4. الوصول إلى الــ Business Layer Object : ببساطة تحويل الخاصية Tag إلى نوع الكائن عن طريق casting و إسنادها لمتحول (أو Reference) مثال :
      AccountInfo accountInfo = treeView1.SelectedNode.Tag as AccountInfo;
    5. تشغيل المثال : افتح التطبيق و حدد إي عقدة في الشجرة لتظهر المعلومات التفصيلية للحساب في خانات النص ثم غير القبم و احفظ ثم حدد عقدة أخرى كي تظهر معلوماتها ثم ارجع للعقدة السابقة كي نشاهد المعلومات التي حفظناها مؤخرا .. post-94677-073346200 1323646442_thumb.pn
    6. شرح بسيط : كل Control يظهر أمامنا على الفورم هو في النهاية Object موجود في الذاكرة , لذلك كل TreeNode هي Object في الذاكرة و الخاصية Tag فيها تشير إلى الكائن من نوع AccountInfo الذي تمثله العقدة .
    7. ملاحظة : هنا مثال يوضح كيفية تحميل مجموعة من السجلات على شكل شجرة و إضافة قائمة يمينة لحذف و تعديل و إضافة العقد إضافة لاستخدام الخاصية Tag في الــ TreeViewItem . (الــ Business Object اسمه Types) رابط الموضوع , تحميل المثال مباشرة .
    8. المثال في المرفقات ..

      ArabTeamTag.rar
المرفقات
TreeNode_Tag.png
2

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#2

السلام عليكم ورحمة الله وبركاته.

رائع جداً أخي houssam11350_11350 , أسلوبك واضح وسلس ومرتب جداً .

أشكرك على هذا الطرح المفيد .

جزاك الله كل خير :) .

((إِنَّ اللَّهَ وَمَلائِكَتَهُ يُصَلُّونَ عَلَى النَّبِيِّ يَا أَيُّهَا الَّذِينَ آمَنُوا صَلُّوا عَلَيْهِ وَسَلِّمُوا تَسْلِيمًا))

#3

شرح رائع وجميل وبارك الله فيك

Maher Salman

Senior Oracle Developer

Oracle Certified Professional

Kuwait

اللهم إني أعوذ بك من الهم والغم والحزن،

وأعوذ بك من العجز والكسل والفشل،

وأعوذ بك من الجبن والبخل،

وأعوذ بك من الكفر والفقر،

وأعوذ بك من غلبة الدين وقهر الرجال

#4

السلام عليكم ورحمه الله وبركاته

اخي حسام مش بالضرورة الخاصيه تربط كائن في الـ Business Layer انما تستخدم كوسم لحفظ اي كائن بداخلها لاسترجاعه لاحقا, فمثلا في لعبة الشطرنج يمكنك اضافة نوع القطعة في مربع الصورة كـ Pawn, King, Queen دون الحاجة الى مصفوفة .. وغيرها من الامثل

واخير اشكرك على المجهود الرائع .. بالتوفيق

تم تعديل هذه المشاركة بواسطة VB Helper في 12 ديسمبر 2011 في 15:08

.:: Wish to become better and better ::.

#5

السلام عليكم ..

الإخوة Rose Muhammed و mmsalman87 و VB Helper مشكورين على الردود ..

الأخ VB Helper اتفق تماما مع ما قلته , و أنا ذكرت ذلك على عجالة (البند رقم 3) , و المثال ركز على ربط الـ Control من الــ GUI مع كائن Business Object .

و في مثالك أيضا تعتبر الصورة هي Control (عنصر مرئي على الفورم) على الـ GUI والــ Piece هي الــ Business Object أو الــ Domain Object المسؤولة عن معالجة منطق التطبيق ..أي الطبقة الثانية التي هي تحت الــ GUI.

مشكورين ..

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

مواضيع مشابهة