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

استخدام الكيبورد فى مشروح الآلة الحاسبة

مغلق
بدأه أحمــــد في 18 فبراير 2008 · 3 رد · 2,853 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

post-91400-1203421740_thumb.jpg

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

  private void equall_Click(object sender, EventArgs e)
		 {

			 try
			 {
				 double zz = double.Parse(label1.Text);

				 switch (op)
				 {
					 case "+":
						 label1.Text = operations.Add(a, zz).ToString();
						 plus.Enabled = true;
						 break;

					 case "-":
						 label1.Text = operations.Sub(a, zz).ToString();
						 minus.Enabled = true;
						 break;

					 case "*":
						 label1.Text = operations.Multiply(a, zz).ToString();
						 multiple.Enabled = true;
						 break;

					 case "/":
						 if (double.Parse(label1.Text) == 0.0)
						 {
							 MessageBox.Show("Cannot Divide By Zero");
							 divide.Enabled = true;
						 }
						 else
						 {
							 label1.Text = operations.Divide(a, zz).ToString();
							 divide.Enabled = true;
						 }
						 break;
				 }
				 equall.Enabled = false;
			 }
			 catch 
			 {
				 return;
			 }
		 }

Calculator.zip

تم تعديل هذه المشاركة بواسطة بن العيد في 19 فبراير 2008 في 14:50

#2

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

اولا :عندك غلطة

جرب تعمل هذه العملية الحسابية و انت تعرفها

1+2+3

ثانيا: بالنسبة للسؤال بتاعك انت مستخدم label لكي تعرض فيه حاول تستبدله ب textbox لو ممكن مؤقت لحد ما تجد حل فانا للاسف لا اعرف حل

ثالثا: حاول تدعم الالة الحاسبة ببعض العمليات الرياضية مثل cos ,sin , tan , pow وغيرها فهي سهلة

#3

- بالنسبة للغلطة هى مش بالظبط غلطة هو التصميم بتاع الآلة كدة ، انا قلت أعمل كلاس أحط فيه كل الميثودز وأناديها بداخل كل كليك إيفينت ، فاضطريت إنى أستخدم ال button enabled للتحكم فى الزر ، لو شلتها الآلة مش هتشتغل ... ممكن اعمل 1+2 = بعدين الناتج + 3 .

- أنا سمعت إنى ممكن استخدم ال Keypress ايفنت بس للأسف معرفش ازاى .. وحاولت افهمه من ال MSDN مفهمتش .

- كنت بفكر أدعم المشروع بأدفانسد فانكشنز بس مستنى أنتهى من المشكلة دى .

#4

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

اقتباس
أنا سمعت إنى ممكن استخدم ال Keypress ايفنت بس للأسف معرفش ازاى .. وحاولت افهمه من ال MSDN مفهمتش .

اولا: الحدث keypress مش موجود في label لذلك اقترحت عليك استبدال ال label ب textbox لان هذا الحدث موجود فيه

ثانيا : بالنسبة لاستخدام keypress

هذا الحدث يعمل عند الضغط علي اي بوتن في لوحة المفاتيح

مثال لو انا عاوزة كل ما اليوزر يضغط علي حرف تظهر رسالة بالحرف ده

 private void txtID_KeyPress(object sender, KeyPressEventArgs e)
		{
			MessageBox.Show(e.KeyChar.ToString());
		}

لاحظ ان e.keychar تحتوي علي الحرف اللي اليوزر ضغط عليه

مثلا اخر لو انا عندي textbox وعاوزة اجبر اليوزر مايدخلش غير ارقام بس اعمل ايه؟؟؟

هخليه مهما يضغط علي اي حرف ميكتبش الا الارقام فقط يعني ايه برده؟؟

يعني هشوف الحرف اللي اليوزر ضغط عليه لو هو رقم يكتب اولو هو backspace يمسح

 private void telephone_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
		{
			if (!char.IsNumber(e.KeyChar) || e.KeyChar == (char)Keys.Back)
			{
				e.Handled = true;
			}
		}

وبالتالي انت ممكن تخلي اليوز لو ضغط علي "+" يروح ينفذ فانكشن الجمع

private void txtID_KeyPress(object sender, KeyPressEventArgs e)
		{
	  if (e.KeyChar.ToString() == "+")
			{
				label1.Text = operations.Add(a, zz).ToString(); //from ur code

			}

		}

ملحوظة : دائما اجعل التركيز يكون علي textbox يعني بعد الضغط علي اي كنترول في الفورمه يعود التركيز علي textbox بدون الذهاب و الضغط عليه بالموس عن طريق

 txtID.Focus();

ارجو ان يكون هذا الشرح وضح لك معني keypress

هذا الموضوع مغلق.

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