PDA

View Full Version : چگونه به برنامه بگویم وقتی فلان کلید کیبرد را زدیم، فلان زیر برنامه رو اجرا کن؟



FVVSBN
جمعه 28 خرداد 1389, 21:04 عصر
سلام.
یه ماشین حساب مهندسی نوشتم.

میخوام با کلید های روی کیبرد هم کار کنه.

حالا مثلا چجوری وقتی کلید + روی کیبرد رو زدم زیر برنامه btnAdd_Click رو فراخوانی کنم؟

راستی این کد ها هم درسته؟
http://rmhh.co.uk/ascii.html

پیشاپیش ممنون.

asefy2008
جمعه 28 خرداد 1389, 21:44 عصر
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '+')
{
btnAdd_Click();
}
}

mmd2009
جمعه 28 خرداد 1389, 22:44 عصر
دوست عزیز من یک اموزش ویدئویی درست کردم که این کارو انجام میده

کافیه بری دانلودش کنی و ببینیش

http://www.barnamenevis.org/forum/showthread.php?t=228420

FVVSBN
یک شنبه 30 خرداد 1389, 15:37 عصر
من از روی داد keydown استفاده کردم... به درستی کار میکنه ولی تا زمانی که دکمه ای روی فرم با موس فشار ندادیم.

اگه با موس روی هر کدوم از دکمه های فرم کلیک کنم دیگه دارای فوکوس میشه که اجازه نمیده keydown فرم اجرا بشه. با اینکه tapstop همه کنترل ها هم خاموشه.

حالا میشه بیام برای همه کنترل ها رویداد keydown ی بنویسم که keydown فرم رو فراخوانی کنه... ولی واقعا برنامه از حالت نیمه حرفه ای خودش خارج میشه.

در نتیجه به هر کدوم از سوالات زیر پاسخ بدید ممنونم:

چه کار کنم که هیچ دکمه ای دچار فوکوس نشه؟
چیکار کنم اگه روی دکمه ای فوکوس شد، فوکوس فورا حذف شود؟

Reza_Yarahmadi
یک شنبه 30 خرداد 1389, 15:59 عصر
برای حل مشکل میتونید خاصیت KeyPreview فرم رو برابر True بذارید و کدهاتون رو توی رویداد KeyDown فرم بنویسید.

چه کار کنم که هیچ دکمه ای دچار فوکوس نشه؟
فکرنمیکنم این کار شدنی باشه!!

چیکار کنم اگه روی دکمه ای فوکوس شد، فوکوس فورا حذف شود؟
در آخر رویداد کلیک دکمه ها کد زیر رو بنویسید

textBox1.Focus();

cardano7
یک شنبه 30 خرداد 1389, 17:10 عصر
به این شکل میشه یک Event رو صدا زد:

btnAdd_Click(this, new EventArgs());