تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[مثال] من المنتدى القديم شرح كيفية صنع " شريط الصور " خطوة بخطوة + الشرح التفصيلي (1من2)
#1
السلام عليكم 
هذا المقال او المثال منقول من المنتدى القديم وهو للاخ زيد من العراق
بالاول راح اشرح ما هو شريط الصور ,, شريط الصور هو راح يكون مصفوفة صور مرئية جنب الى جنب او من اعلى الى اسفل ولهذا اسميته شريط الصور 

اذا فتحت برنامج Microsoft Office 2010 Picture Maneger راح تشوف انو في طريقة لتصفح الصور وهي مثل شريط يحوي صور عديدة عندما تقوم بأختيار صورة يتم عرضها بسهولة 

احنا راح نسوي شي مشابه ,, ان شاء الله يكون سهل ولن يكون هناك تعقديات 

اكيد تحمستم للموضوع ... اذا خلي نبدأ 

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

اذا ابدأ مشروع جديد - من قائمة المشروع right click على ايقونه المشروع لعمل Add Item من هناك قم بأختار اليوزر كنترول وليكن اسمها ImageContainer ( حاوية الصورة ) 

راح يضهر لك نافذة الاداة قم ببساطة بأضافة PictureBox الي الاداة واهم شي بالموضوع ان تضع مسافة بين حدود الاداة ( قصدي ان لا تكون متلاصقة بكل الجهات ) 

لحد الان كلشيء سهل من قائمة خائص الــ PictureBox

قم بتغيير خاصية SizeMode الى Zoom 
قم بتغيير خاصية Anchor الى Top,Left,Right,Bottom ( كل الجهات ) 

والان مع الكود . . . ادخل الي صفحة الكود ولنقم بوضع خصائص اضافية للأداة 

رموز PHP:
كود :
Color normalColor = Color.Black;  

رموز PHP:
كود :
public Color BorderColor 

set { normalColor = value;}  
get { return normalColor; } 
}  

الخاصية السابقة ستكون اللون الخاص بالأطراف وسيكون شيء مثل اطار للحاوية 
والان مع اللون الي يظهر عند مرور الماوس على الاداة 

رموز PHP:
كود :
Color hoverColor = Color.Orange;  

رموز PHP:

كود :
        public Color HoverColor 
        { 
            set { hoverColor = value; } 
            get { return hoverColor; } 
        }  

والان مع الخاصية العامة public والي هي الصورة 

رموز PHP:

كود :
        public Image Image 
        { 
            set { pictureBox1.Image = value; } 
            get { return pictureBox1.Image; } 
        }  

والان اعطي متغير ليثبت اننا في الوضع العادي ( بدون مرور الماوس على الاداة ) او لا !!!

رموز PHP:

كود :
bool normalMode = true;  

والان مع حدث رسم الحدود على الاداة والي راح تكون مثل اطار كما ذكرت سابقا 
والي راح يكون في حدث الـــ Paint

رموز PHP:

كود :
        private void ImageContainer_Paint(object sender, PaintEventArgs e) 
        { 
            if (normalMode) 
            { 
                e.Graphics.DrawRectangle(new Pen(normalColor, 3), new Rectangle(0, 0, Width - 1, Height - 1)); 
            } 
            else 
            { 
                e.Graphics.DrawRectangle(new Pen(hoverColor, 3), new Rectangle(0, 0, Width - 1, Height - 1)); 
            } 
        }  

والان في حدث الــ MouseHover سنقوم بأستدعاء حدث الرسم وتغيير قيمة الوضع العادي الى false كالاتي : 

رموز PHP:

كود :
        private void ImageContainer_MouseHover(object sender, EventArgs e) 
        { 
            normalMode = false; 
            Invalidate(); 
        }  

والان عند خروج الماوس من الاداة راح نرجع على الوضع العادي :

رموز PHP:

كود :
        private void ImageContainer_MouseLeave(object sender, EventArgs e) 
        { 
            normalMode = true; 
            Invalidate(); 
        }  

والان الاحداث السابقة لا تفعل شيئا عند دخول المواس في منطقة الصورة لذلك لازم نعطي نفس الاحداث الي الــ PictureBox

رموز PHP:

كود :
        private void pictureBox1_MouseEnter(object sender, EventArgs e) 
        { 
            OnMouseHover(e); 
        }  

والان اذا قام المستخدم بالضغط على الــ PictureBox راح تقوم الاداة بأستدعاء حدث الــ Click الخاص بها وليس الخاص بــ PictureBox كالاتي : 

رموز PHP:

كود :
        private void pictureBox1_Click(object sender, EventArgs e) 
        { 
            OnClick(e); 
        }  

ملاحطة : الالوان الخاصة برسم الحدود يمكن تغييرها ضمن الفورم او الــ Run-time بصورة public 
الان وبكل سهولة انتهينا من الدرس الاول وهو صنع الاداة 
ياريت تكون هناك مشاركات بيها الاداة كاملة حتى اشوف كيفية عملكم للأداة واساعدكم بأس استفسار اذا احتاجيتم ( ولو اشوف الدرس سهل   ) 

الدرس الثاني راح يكون عن كيفية استخدام الاداة في برنامج وكيفية استعمالها والعبث بها بكل الوسائل 

في انتظار مشاركاتكم , اقتراحاتكم , تعليقاتكم 
تحياتي وبالتوفيق . . . اخوكم زيــد

__________________
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [مشروع] محول صيغ الصور ربيع 11 1,044 18-09-16, 10:23 PM
آخر رد: Amir_alzubidy
  [مثال] من المنتدى القديم شرح كيفية صنع " شريط الصور " خطوة بخطوة + الشرح التفصيلي (2من2) a_senan 1 549 17-09-15, 03:28 PM
آخر رد: أبو عمر
  [VB.NET] بدي مثال جاهز مع الشرح دخت ولا حصلت اي نتيجة theghost 11 1,381 06-09-15, 01:19 AM
آخر رد: أبو عمر
  [سؤال] كيفية التغلب على رمز ##### عند ادراج حقل رقمى فى الكريستال روبيرت اي كيفية تصغير الار roony 3 435 26-06-15, 11:53 AM
آخر رد: roony
  [سؤال] كيفية التغلب على رمز ##### عند ادراج حقل رقمى فى الكريستال roony 0 246 19-06-15, 07:08 PM
آخر رد: roony

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم