PDA

View Full Version : سوال: خواندن کلید های جهت نما (Arrow Keys)



praise
سه شنبه 15 آذر 1390, 23:09 عصر
سلام
من توی فرم اصلی برنامه ام می خوام برای کلید های جهت نمای چپ و راست یه کار خاصی نعریف کنم برای این کار از Event (رخداد!) Key Down استفاده کردم ولی این رخداد (!) کلید های جهت نما رو نمی خونه - یعنی اصلاً تریگر نمی شه از دوستان خواهش می کنم راهنمایی کنند.
با تشکر پیش ا پیش فراوان!
:قلب:

توضیح کوچولو منظور من از کلید های جهت نما چهار کلید بالا پایین چپ و راست هستش که سمت چپ نام پد یا همون کلید های اعداد یک تا نه هست!

behzad1986
سه شنبه 15 آذر 1390, 23:25 عصر
سلام
بعد از لود شدن فرم، focus به یکی از کنترلهای تو فرم میره واسه همین کلید فشاد داده شده به اون کنترل ارسال میشه نه به فرم.
اگر کنترل دکمه نباشه با
this.KeyPreview = true;
کلید فشار داده شده به فرم هم ارسال میشه

praise
سه شنبه 15 آذر 1390, 23:30 عصر
سلام
بعد از لود شدن فرم، focus به یکی از کنترلهای تو فرم میره واسه همین کلید فشاد داده شده به اون کنترل ارسال میشه نه به فرم.

سلام دوست عزیز من روی کنترل های دیگه هم این ایونت رو اعمال کردم همه کلید ها رو می خونه جز کلید های جهت نما و Enter، Ctrl و چند تای دیگه!

behzad1986
سه شنبه 15 آذر 1390, 23:32 عصر
این کد رو تست کن
private void KeyPres(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Left)
MessageBox.Show("left");

}

praise
چهارشنبه 16 آذر 1390, 00:24 صبح
این کد رو تست کن
private void KeyPres(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Left)
MessageBox.Show("left");

}

همونطوری که می دونی هم Key Down داریم هم Key Pressed اینی که شما فرمودین برای Key Pressed هستش چون Key Down نوع آرگومان دومیش KeyPressEventArgs هست که e.KeyCode نداره! برای Key Down داره ولی کار نمی کنه یعنی با زدن Left Arrow مسیج باکس نشون نمی ده!

Mahmoud Zaad
چهارشنبه 16 آذر 1390, 09:47 صبح
سلام
توی لود فرم می نویسید:
this.KeyPreview = true;
بعد توی رویداد KeyDown هم همون کدهای خودتون رو می نویسید:
if (e.KeyCode == Keys.Left)
{
MessageBox.Show("left pressed");
}