PDA

View Full Version : کار کردن ماشین حساب با کیبورد کامپیوتر



amirmahdavi
جمعه 17 اردیبهشت 1389, 13:56 عصر
من یک برنامه ماشین حساب به زبان C#‎ نوشتم... همه چیش درسته...
حالا فقط می خوام این ماشین حساب با کیبورد هم کار کنه... یعنی با فشار دادن دکمه ها توابع مربوط به اون دکمه فراخوانی بشه... چی کار کنم؟
دقیقا چه کدی باید بنویسم؟...
این کد رو کجای برنامه باید بنویسم که همیشه فراخوانی بشه؟

si6arp
جمعه 17 اردیبهشت 1389, 14:46 عصر
من یک برنامه ماشین حساب به زبان C#‎‎ نوشتم... همه چیش درسته...
حالا فقط می خوام این ماشین حساب با کیبورد هم کار کنه... یعنی با فشار دادن دکمه ها توابع مربوط به اون دکمه فراخوانی بشه... چی کار کنم؟
دقیقا چه کدی باید بنویسم؟...
این کد رو کجای برنامه باید بنویسم که همیشه فراخوانی بشه؟

در قسمت رویداد های فرم باید از رویداد KeyDown استفاده کنی دوست من .



if(e.keyCode = KeyCode.N )
{
MessageBox.Show("N");
}


در این کد اگر دکمه N رو کاربر بزنه پیغامی ظاهر میشه .
حالا دیگه بقیه کارش با شما .

mmd2009
جمعه 17 اردیبهشت 1389, 16:41 عصر
دوستمون اون بالا دیگه راحت توضیح داد به شما

حالا اگر خواستی مثلا دکمه جمع (+)رو بزنی و اسمش هم btnsub بود از این دستور استفاده کنه :





if (e.KeyCode == Keys.Add)
this.btnsub_click(sender,e);

amirmahdavi
جمعه 17 اردیبهشت 1389, 17:10 عصر
در قسمت رویداد های فرم باید از رویداد KeyDown استفاده کنی دوست من .



if(e.keyCode = KeyCode.N )
{
MessageBox.Show("N");
}

در این کد اگر دکمه N رو کاربر بزنه پیغامی ظاهر میشه .
حالا دیگه بقیه کارش با شما .

من رویداد KeyDown رو پیدا نمی کنم... مگه لیست رویدادها کمبوباکس members بالای صفحه کدنویسی سمت راست نیست؟

ali.aghdam
شنبه 18 اردیبهشت 1389, 20:10 عصر
نه
برای دیدن Event های یک کامپوننت بر روی آن در حالت Design کلیک کرده و از قسمت Prperties دکمه Events رو کلیک کنید (به شکل رعد یا همچین چیزی ) آنگاه لیست تمامی Event های اون کامپوننت نمایش داده می شود کافی است برروی Event مورد نظر دابل کلیک فرمایید

amirmahdavi
شنبه 18 اردیبهشت 1389, 21:05 عصر
خب الان برای امتحان این کد رو نوشتم... ولی هرچی دکمه a رو فشار میدم هیچ اتفاقی نمی افته...
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.A)
{
MessageBox.Show("N");
}
}

در واقع رویداد KeyDown فرم اصلا فراخوانی نمیشه...

hojjatshariffam
شنبه 18 اردیبهشت 1389, 22:10 عصر
دوستمون اون بالا دیگه راحت توضیح داد به شما

حالا اگر خواستی مثلا دکمه جمع (+)رو بزنی و اسمش هم btnsub بود از این دستور استفاده کنه :





if (e.KeyCode == Keys.Add)
this.btnsub_click(sender,e);



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




btnsub.PerformClick();



خب الان برای امتحان این کد رو نوشتم... ولی هرچی دکمه a رو فشار میدم هیچ اتفاقی نمی افته...
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.A)
{
MessageBox.Show("N");
}
}

در واقع رویداد KeyDown فرم اصلا فراخوانی نمیشه...

برای این کار نمی کنه که یه کنترل دیگه به غیر از فرم ، فوکاس شده
مثلا یه تکست باکس
اول روی یه جای خالی فرمت کلیک کن بعد کلید رو فشار بده
اگه کار کرد بگو تا بقیشو حل کنیم