PDA

View Full Version : چگونگی استفاده از کدهای کیبورد در برنامه



shima3000
شنبه 18 خرداد 1392, 11:27 صبح
سلام بچه ها

من دارم ی برنامه ماشین حساب می نویسم میخاستم از کلیدهای کیبورد استفاده کنم..از رویداد keyupاستفاده کردم و بعد با ی شرط روی keyvalueهربار مقدار تو switch..caseمیدم..مثلا case:96متد کلید صفر رو فراخوانی کردم همینجور برا بیقه ..

حالا مموقع اجرااا.. وقتی از صفحه کلید دکمه 2 رو میزنم تو textBox م 22 رو نشون میده..23میزنم ..2332نشون میده..!!!!!!!!!!!!!!!!!!چیکارش کنم؟؟؟

roomusic
شنبه 18 خرداد 1392, 11:34 صبح
سلام دوست عزیز
خوب شما با Switch Case بهش میگی که هر کدومو زدم برام یه چیز بنویس
برای همین موقع تایپ مثلا شما 2 رو میزنی هم 2 تو تکست باکست نوشته میشه و هم کلید 2 تو Switch مورد بررسی قرار میگیره و Case اون عمل تو تکست باکس دویاره انجام میشه
یه جورایی کد شما عمل تکرار رو تو برنامتون داره
شما برای فوکوس رو تکست باکست از اون کد استفاده نکن
موفق یاشی

shima3000
شنبه 18 خرداد 1392, 11:42 صبح
سلام دوست عزیز
خوب شما با Switch Case بهش میگی که هر کدومو زدم برام یه چیز بنویس
برای همین موقع تایپ مثلا شما 2 رو میزنی هم 2 تو تکست باکست نوشته میشه و هم کلید 2 تو Switch مورد بررسی قرار میگیره و Case اون عمل تو تکست باکس دویاره انجام میشه
یه جورایی کد شما عمل تکرار رو تو برنامتون داره
شما برای فوکوس رو تکست باکست از اون کد استفاده نکن
موفق یاشی

سلام

ینی دقیقا باید الان چیکار کنم؟؟؟از switch..caseاستفاده نکنم؟؟؟؟

roomusic
شنبه 18 خرداد 1392, 11:46 صبح
سلام

ینی دقیقا باید الان چیکار کنم؟؟؟از switch..caseاستفاده نکنم؟؟؟؟

میتونید استفاده کنید ولی تو Keyup تکست باکستون این کار رو انجام ندید

shima3000
شنبه 18 خرداد 1392, 12:03 عصر
میتونید استفاده کنید ولی تو Keyup تکست باکستون این کار رو انجام ندید

بله دادمش به فرامم!!درس شد!
ولی یجا دیگش باز خراب شد!!!دی:

من برای +،-،*هم گذاشتم ولی تا میزنم اینا میان تو تکست باکسم درصورتی که نمیخام بیان..بعد عملیات (متدی ک نوشتم براش)مساوی رو هم میتونم اینجور تو caseمربوط به کد کلیدش بدم؟

roomusic
شنبه 18 خرداد 1392, 12:08 عصر
بله دادمش به فرامم!!درس شد!
ولی یجا دیگش باز خراب شد!!!دی:

من برای +،-،*هم گذاشتم ولی تا میزنم اینا میان تو تکست باکسم درصورتی که نمیخام بیان..بعد عملیات (متدی ک نوشتم براش)مساوی رو هم میتونم اینجور تو caseمربوط به کد کلیدش بدم؟

برای مساوی از کد زیر استفاده کنید ممکنه مشکلتون حل بشه
در مورد + - * هم بیشتر توضیح بدید


if (e.KeyValue == 13)
{
// عملیات مساوی
}

shima3000
شنبه 18 خرداد 1392, 12:12 عصر
مثلا اینجوری نوشتم:

case 106:

Mul_button_Click(sender, e);

break;

case 107:
ADD_button_Click(sender, e);

break;
case 109:

Minus_button_Click(sender, e);

اینایی ک فراخوانی شده اند همون متدهایی هستن ک برای کلید +،-،*نوشتم..اینجا فراخوانی شون کردم!!

roomusic
شنبه 18 خرداد 1392, 12:17 عصر
مثلا اینجوری نوشتم:

case 106:

Mul_button_Click(sender, e);

break;

case 107:
ADD_button_Click(sender, e);

break;
case 109:

Minus_button_Click(sender, e);

اینایی ک فراخوانی شده اند همون متدهایی هستن ک برای کلید +،-،*نوشتم..اینجا فراخوانی شون کردم!!

خوب شما این فرمان Switch Case رو تو رویداد کدوم شیئ گذاشتید؟؟

shima3000
شنبه 18 خرداد 1392, 12:33 عصر
خوب شما این فرمان Switch Case رو تو رویداد کدوم شیئ گذاشتید؟؟

تو هم رویداد فرام ک کلید اعداد رو گذاشتم..ادامه همونا!!

private void Form1_KeyUP(object sender, KeyEventArgs e)
{

if (e.KeyValue > 95 && e.KeyValue < 112)
{
switch (e.KeyValue)
{
case 96:

sefr_button_Click(sender, e);

break;
case 97:

One_button_Click(sender, e);

break;
case 98:

Tow_button_Click(sender, e);

break;
case 99:

Three_button_Click(sender, e);

break;
case 100:

Four_button_Click(sender, e);

break;
case 101:

Five_button_Click(sender, e);

break;
case 102:

Sin_button_Click(sender, e);

break;
case 103:

Seven_button_Click(sender, e);

break;
case 104:

Eight_button_Click(sender, e);

break;
case 105:

Nine_button_Click(sender, e);

break;

case 106:

Mul_button_Click(sender, e);

break;

case 107:
ADD_button_Click(sender, e);

break;
case 109:

Minus_button_Click(sender, e);

break;

case 110:

Noghte_button_Click(sender, e);
break;

case 111:

Divide_button_Click(sender, e);

break;
}

}
}

roomusic
شنبه 18 خرداد 1392, 12:48 عصر
کد که مشکلی نداره
شما کد های مربوط به + - * رو تو KeyDown فرمت بنویس شاید درست بشه!
حالا یه امتحانی بکن
ولی یه چیزی
اگه رو تکست باکست فوکوس شده باشه هر کلیدی که قابل نمایش باشه فشرده بشه تو تکست باکس نمایش داده میشه

shima3000
شنبه 18 خرداد 1392, 12:55 عصر
کد که مشکلی نداره
شما کد های مربوط به + - * رو تو KeyDown فرمت بنویس شاید درست بشه!
حالا یه امتحانی بکن
ولی یه چیزی
اگه رو تکست باکست فوکوس شده باشه هر کلیدی که قابل نمایش باشه فشرده بشه تو تکست باکس نمایش داده میشه

حالا ی امتحانی میکنم رو keyDown!!..
ولی همینجوریم مثلا 6میزنم با کیبورد بعد از روی خود ماشین حساب منها رو میزنم بعد مثلا میخام 4 بزنم(با کیبورد)..که کم کنه...4 رو میاره کنار اون 6..مینویسه 64!!!!!!!!

بازم تلاشمو میکنم!

ممنون ازتون ک وقت گذاشتین پاسخمو دادین..خیلی لطف کردین.

roomusic
شنبه 18 خرداد 1392, 13:02 عصر
حالا ی امتحانی میکنم رو keyDown!!..
ولی همینجوریم مثلا 6میزنم با کیبورد بعد از روی خود ماشین حساب منها رو میزنم بعد مثلا میخام 4 بزنم(با کیبورد)..که کم کنه...4 رو میاره کنار اون 6..مینویسه 64!!!!!!!!

بازم تلاشمو میکنم!

ممنون ازتون ک وقت گذاشتین پاسخمو دادین..خیلی لطف کردین.

خواهش میکنم
شما از 2 تا تکست باکس استفاده کردید یا یه تکست باکس؟
اگه یه دونه هستش شما با کلید هایی که داخل ماشین حسابتون گذاشتید عدد وارد کنبد و یکی از اعمال ریاضی رو روش بکار ببرید عدد قبلی حذف میشه یا عدد قبلی میمونه و نشانه عمل در کنارش و عدد جدید بعد از نشانه؟

shima3000
شنبه 18 خرداد 1392, 20:59 عصر
خواهش میکنم
شما از 2 تا تکست باکس استفاده کردید یا یه تکست باکس؟
اگه یه دونه هستش شما با کلید هایی که داخل ماشین حسابتون گذاشتید عدد وارد کنبد و یکی از اعمال ریاضی رو روش بکار ببرید عدد قبلی حذف میشه یا عدد قبلی میمونه و نشانه عمل در کنارش و عدد جدید بعد از نشانه؟

من یک textBoxدارم!!
به این صورته ک عدد رو وارد میکنم..تو تکست باکس نشون میده بعد عمگر رو میزنم ک عملگر رو نشون نمیدم تو تکست باکس بعد عدد دوم رو ک میزنم مقدار توی تکست باکس پاک میشه عدد دوم نمایش داده میشه بعدم مساوی میزنم ک نتیجه رو فقط در تکست باکسم نشون میده!(به این صورت کار میکنه نه اونجور ک شما فرمودین!)

roomusic
شنبه 18 خرداد 1392, 21:56 عصر
من یک textBoxدارم!!
به این صورته ک عدد رو وارد میکنم..تو تکست باکس نشون میده بعد عمگر رو میزنم ک عملگر رو نشون نمیدم تو تکست باکس بعد عدد دوم رو ک میزنم مقدار توی تکست باکس پاک میشه عدد دوم نمایش داده میشه بعدم مساوی میزنم ک نتیجه رو فقط در تکست باکسم نشون میده!(به این صورت کار میکنه نه اونجور ک شما فرمودین!)
خوب شما تو کد دکمه های + - * دقیقا" کد عمل + - * رو بزار ولی در آخر تکست تکس باکستو مساوی "" قرار بده

fool66
شنبه 18 خرداد 1392, 22:50 عصر
به جای switch از این کد استفاده می کردی

const char Delete = (char)8;
e.Handled = !Char.IsDigit(e.KeyChar) && e.KeyChar != Delete;