PDA

View Full Version : سوال: استفاده از کلید های تبعی (F4) در فرم



ehsan446
دوشنبه 26 تیر 1391, 12:42 عصر
سلام
دوستان من یک فرم دارم که کلی کامپوننت داخلش دارم
میخوام تو هر قسمتی از این فرم کلی f4 زده بشه یک سری کد اجرا بشه
نمیدونم چطور ممکنه
در خاصیت keypress فرم هم نوشتم عمل نکرد

Mahmoud.Afrad
دوشنبه 26 تیر 1391, 12:49 عصر
ابتدا خصیصه keypreview فرم را true کنید و از رویداد keydown استفاده کنید
if (e.KeyCode == Keys.F4)
{
//........
}

saman_h
دوشنبه 26 تیر 1391, 20:36 عصر
جوابی که دوستمون دادن کاملا درسته اما یه کار دیگه هم میتونی انجام بدی
میتونی یه شی MenuStrip بندازی رو فرمت و یه گزینه بهش اضافه کنی و کدهات رو داخل اون بنویسی . اونوقت از داخل Properties همون گزینه ای که ساختی برو ShortCutKeys رو پیدا کن و مقدارشو بذار همون F4 که میخوای . اونوقت اون MenuStrip رو مخفی کن .
به همین سادگی

ehsan446
سه شنبه 27 تیر 1391, 08:41 صبح
ممنون
دوستان یه سوال دیگر
میخوام بدونم چطور میشه یک کلید رو به یک کامپوننت ارسال کنم
مثلا یک گرید ویو دارم میخوام وقتی f4 زده می شود اونو به یک تکست باکس بفرسته و f4 روی اون اجرا بشه(یعنی keypress تکست باکس واسه کلید f4 فعال بشه )

ehsan446
چهارشنبه 28 تیر 1391, 12:08 عصر
شما از طریق فرم کلید رو تشخیص بده بعد اگر کلید f4 بود فوکوس رو به تکست باکس انتقال بده.
اینو میدونم
میخوام بعد از اینکه فوکوس به تکست باکس داده شد کلید f4 رو تکست باکس اجرا بشه
f4 بطور مثال بود
من میخوام هرکدوم از کلید های f را که در گرید ویو زده میشه رو تکست باکس عمل کند(یعنی خاصیت keypress تکست باکس روی اون کلید عمل کند)

ehsan446
سه شنبه 03 مرداد 1391, 23:40 عصر
دوستان کمک...

ali_habibi1384
سه شنبه 03 مرداد 1391, 23:53 عصر
اینو میدونم
میخوام بعد از اینکه فوکوس به تکست باکس داده شد کلید f4 رو تکست باکس اجرا بشه
f4 بطور مثال بود
من میخوام هرکدوم از کلید های f را که در گرید ویو زده میشه رو تکست باکس عمل کند(یعنی خاصیت keypress تکست باکس روی اون کلید عمل کند)
خب وقتي كه رفتي توي اون تكست باكس (توسط دستوري كه دوستمون گفت) از تابع sendkeys.send هر كليدي كه دوست داشتي براش بفرست.البته ميتوني توسط يك نابع ديگه و پارامتري كه بهش پاس ميدي دفيفا خود اون كليد ارسالي رو از اونطرف بگيري.

Y_Safaiee
چهارشنبه 04 مرداد 1391, 00:02 صبح
با سلام خدمت شما دوست عزیزم

نمیدونم قشنگ متوجه سوالت شدم یا نه اما چیزی که من از خوندن سوالت فهمیدم اینه (البته مثاله و تنها لازمه خودت تو رویداد Keydown دیتاگرید کد مربوط به text1 و داخل تکس باکست کد مربوط به text2 رو بنویسی):



private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue==116)
{
KeyEventArgs key = new KeyEventArgs(Keys.F5);
textBox2.Focus();
textBox2_KeyDown(sender, key);
}
}

private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 116) MessageBox.Show("ok");
}


متنتو تو تکس باکس اولی بنویس و F5 رو بزن خودش فوکاس رو میبره رو تکس دومی و به تکس کد F5 رو ارسال میکنه و به اون میفهمونه که کاربر F5 رو زده بعد تکس دومی تست میکنه که آیا واقعا F5 خورده شده اگه خورده باشه پبغام میده.

اگه درست متوجه نشدم شفاف سوال بپرس شفاف جواب بگیر

موفق باشین
بایت بایت