سؤال

وأنا كينغ على لعبة بطاقة لبلدي مقدمة إلى مكتب الرئيس الورق. اللعبة نفسها تجتمع المواصفات ولكن أنا ألعب الآن مع حولها لسعادتي بك والتعلم.

ولدي فئة البطاقة التي تحتوي على والصورة، مرتبتها وجناح. على واجهة المستخدم الرسومية يمكنني استخدام مربعات الصورة لعرض الصور المخزنة في بطاقات منها (التي يتم تخزينها في مجموعة بطاقة في فئة سطح السفينة) لذلك،

cardPictureBox1.Image = card1.show();
cardPictureBox2.Image = card2.show();
cardPictureBox3.Image = card3.show();
...
etc

وسيكون من الممكن لجعل بطاقة فئة وراثة تحكم PictureBox ذلك ما على الشاشة هو "في الواقع" مثيل CALSS بطاقة (بدلا من المربع الذي عقد قيمة صورة منه) الذي من شأنه أن جذريا الحد انه مبلغ الأطواق فإن المرء لابد للقفز من خلال لبلوغ بطاقات المعلومات الأخرى ذات الصلة.

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

المحلول

وبدلا من وجود فئة بطاقة، يمكنك إنشاء على UserControl (يسمى بطاقة أو ucCard أو أيا كان) أن يرث من PictureBox (بدلا من وراثة من UserControl). أسهل طريقة للقيام بذلك في C # هو إضافة UserControl مع الاسم الذي تريده، ثم في رمز تغيير السطر العلوي من

public partial class ucCard : UserControl

إلى

public partial class ucCard : PictureBox

والسيطرة ucCard الخاص بك سوف ثم الحصول على جميع خصائص PictureBox (بما في ذلك الصور، حيث يمكنك أن تخزن الصور النقطية للبطاقة). عند إنشاء المشروع، فإن المترجم شبكة الزعيم على خط يشير AutoScaleMode - فقط حذف هذا الخط وإعادة بناء

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

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

نصائح أخرى

<اقتباس فقرة>   

وسيكون من الممكن لجعل بطاقة   الفئة على وراثة في PictureBox   التحكم حتى ما هو على الشاشة   "في الواقع" مثيل البطاقة   CALSS (بدلا من المربع الذي عقد   قيمة صورة منه) الذي من شأنه   جذريا تقليل كمية انه الأطواق   فإن المرء لابد للقفز من خلال ل   بلوغ بطاقات المعلومات الأخرى ذات الصلة.

نعم، ولكن هل ترغب في ذلك؟ رقم والأزواج منطق الأعمال ونموذج محكم جدا لطبقة واجهة المستخدم الرسومية الخاصة بك.

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

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