السلام عليكم ورحمه الله وبركاته
لاحظت ركودا بسيطا في الاونة الاخيره في أقسام الدوت نت لذا حاولت ان افكر في بعض الطرق لإعطاء هذه الاقسام رونقها وازدهارها من جديد, فكما نرى ان هناك الكثير من الأعضاء الذي يريدون يد العون في بناء مشاريع تساعدهم على تطوير مهارتهم البرمجية, وكما نرى هنا الكثير من المنتديات والجمعيات الانجليزية التي تخدم مبرمجيها, ففكرت بناء مجموعة مشاريع مفتوحة المصدر متنوعة. فأرجو من الاعضاء التفاعل وانشاء مشاريع تخدم المبرمجين العرب والاستفادة من اكوادها.
اقدم لكم اول مشروع وما هو الا عبارة عن ألة حاسبة, وهذا المشروع يركز كثيرا على كيفية التعامل مع مجموعة مختلفة من الادوات والاحداث والاهم تنوع الافكار البرمجية
وهذه مجموعة من الاكواد المتفرقة
private void Number(object sender, EventArgs e)
{
if(label1.Text=="0") label1.Text = "";
label1.Text+=(sender as Button).Text;
}الكود السابق يقوم بمعرفة زر الرقم الذي تم نقره من ثم يظهره في مربع العنوان النتيجه, فلو نلاحظ عملنا حدث واحد فقط لجميع ازرار الارقام ومن ثم استخدام الكائن sender لتمييز الزر الذي تم نقره
private void button13_Click(object sender, EventArgs e)
{
operation = '+';
operand = Convert.ToDouble(label1.Text);
label1.Text = "0";
}الكود السابق خاص بنقر زر الاضافة والذي يتم خزن نوع العملية الحسابية والمعامل الاول ليتم الاستفادة منهما عند نقر زر احتساب النتيجه ومن ثم قمنا بتصفير مربع النتيجة لكي يتسنى لنا كتابة المعامل الثاني, ونفس الحال في زر الطرح, الضرب والقسمه
private void button17_Click(object sender, EventArgs e)
{
switch (operation)
{
case '+':
label1.Text = Convert.ToString (operand + Convert.ToDouble(label1.Text));
break;
case '-':
label1.Text = Convert.ToString(operand - Convert.ToDouble(label1.Text));
break;
case '*':
label1.Text = Convert.ToString(operand * Convert.ToDouble(label1.Text));
break;
case '/':
if(Convert.ToDouble(label1.Text)!=0)
label1.Text = Convert.ToString(operand / Convert.ToDouble(label1.Text));
break;
}
}والكود السابق يقوم باحتساب النتيجه ففي البداية يتمت تمييز العملية التي تم اختيارها مسبقا ومن ثم يتم تطبيق العملية المرادة بالاستفادة من المعامل الاول والرقم الظاهر على مربع العنوان
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue >= 48 && e.KeyValue <= 57)
{
if (label1.Text == "0") label1.Text = "";
label1.Text += (e.KeyValue - 48).ToString();
}
}الكود السابق يمكنك من استخدام لوحة المفاتيح لكتابة الارقام بدلا من النقر على ازرار الارقام
private void MouseEnter(object sender, EventArgs e)
{
(sender as Button).BackColor = Color.Azure;
}
private void MouseLeave(object sender, EventArgs e)
{
(sender as Button).BackColor = Color.WhiteSmoke;
}الحدثين السابقين يقومان باعطاء تأثير بسيط على خلفية الزر عندما يمر عليه مؤشر الفأره وذلك بتغيير لون الخلفية
وهناك الكثير الكثير يمكنكم اكتشافه, وارجو منكم التطوير