PDA

View Full Version : سوال: چگونه با زدن کلیدی از کیبورد مثلا f3 فرمی در پروژه فعال شود.



atoorpatkan
دوشنبه 15 خرداد 1391, 11:37 صبح
سلام دوستان.من یه پروژه دارم که سه تا فرم داره.الان میخوام مثلا با زدن کلید f3 مثلا form2 و با زدن کلید f5 فرمform3 فعال بشه.واسه اینکار چیکار میشه کرد؟؟ممنون میشم راهنماییم کنین.مرسی.

neda_1367_sh
دوشنبه 15 خرداد 1391, 12:04 عصر
در رویداد key press فرمتون بنویسید
If(e.keychar== ‘kelid marbote bod’{
Form2.show
}
نتونستم امتحانش کنم دقیق یادم نیست شاید اشتباه باشه.

harani
دوشنبه 15 خرداد 1391, 12:43 عصر
براحتی و با اضافه کردن کد زیر در رویداد KeyDown فرم :

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
Form2 f = new Form2();

if (e.KeyCode == Keys.F3)
f.ShowDialog();
}

atoorpatkan
دوشنبه 15 خرداد 1391, 15:18 عصر
براحتی و با اضافه کردن کد زیر در رویداد KeyDown فرم :

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
Form2 f = new Form2();

if (e.KeyCode == Keys.F3)
f.ShowDialog();
}

دوست عزیز با تشکر از راهنماییتون من کد شما رو نوشتم درسته که برنامه هیچ خطایی نداد اما جواب هم نداد.یعنی وقتی f3 رو میزنم هیچ اتفاقی نمیوفته.

Direlap
دوشنبه 15 خرداد 1391, 15:40 عصر
فکر کنم کیبورد شما هم مثل اونایی هست که باید یه دکمه سبز رنگی رو خاموش کنن تا کلید های F کار کنن . اینم امتحان کنین .

alexmcse
دوشنبه 15 خرداد 1391, 15:55 عصر
دوست عزیز با تشکر از راهنماییتون من کد شما رو نوشتم درسته که برنامه هیچ خطایی نداد اما جواب هم نداد.یعنی وقتی f3 رو میزنم هیچ اتفاقی نمیوفته.

if (e.KeyChar == (char)Keys.F3 )
{
e.Handled = true;
MessageBox.Show("Keys.f3", "KeyPress");
}

:تشویق:

samadblaj
دوشنبه 15 خرداد 1391, 16:18 عصر
از
proprtis >>keyperview>>true


private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.F3)
{
MessageBox.Show("OK");
}
}

harani
دوشنبه 15 خرداد 1391, 16:21 عصر
این کدها همگی درستند مشکل پس از برنامه نیست چون خودمم که امتحان کردم سریعاً اورد کد سوال شما فقط همین هاست . اگر کار نمی کند شاید مشکل از جایی دیگر است مثلاً کیبوردتان مورد دارد .

jmfnima
دوشنبه 15 خرداد 1391, 20:34 عصر
دوست عزیز با تشکر از راهنماییتون من کد شما رو نوشتم درسته که برنامه هیچ خطایی نداد اما جواب هم نداد.یعنی وقتی f3 رو میزنم هیچ اتفاقی نمیوفته.
با سلام به دوست عزیز ابتدا کدی که دوستم گفته بودم اول بنویسید بعد خاصیت زیر که مربوط به فرمتون هست رو true کنید .
proprtis >>keyperview>>true

jmfnima
دوشنبه 15 خرداد 1391, 20:35 عصر
دوست عزیز با تشکر از راهنماییتون من کد شما رو نوشتم درسته که برنامه هیچ خطایی نداد اما جواب هم نداد.یعنی وقتی f3 رو میزنم هیچ اتفاقی نمیوفته.

ببخشید منظور این کد هست بعد این کار رو برای فرمت انجام بده .proprtis >>keyperview>>true

Mahyar.FF
دوشنبه 15 خرداد 1391, 21:08 عصر
هر دو دوست عزیز samadblaj و jmfnima صحیح فرمودند.
توضیح: اولویت اجرای کلیدهای ترکیبی و عملگر (F1..Fx) با خود ویندوز است، مگر اینکه شما در برنامه خود به ویندوز اعلام کنید که شما می خواهید کنترل اینگونه کلیدها را نیز بعهده بگیرید، که بایستی در این حالت در Properties فرم مربوطه مقدار KeyPreview رو true کنید.
در ضمن در صورتیکه می خواهید فقط و فقط برنامه شما کنترل این کلید را انجام دهد بایستی مقدار e.Handled در Event مورد نظر (KeyDown ، KeyPress ، KeyUp) را true کنید.
(بطور مثال شما می خواهید از F1 در برنامه خود استفاده کنید و کاری انجام دهید ، اما نمی خواهید که بعد از اون ویندوز هم پنجره Help رو load کنه، در اینصورت باید از e.Handled = true استفاده کنید، تا Event به handler پیش فرض پاس داده نشه)

rezvani1370@gmail.com
سه شنبه 15 مرداد 1392, 19:01 عصر
اساتید این کدها مال زمانی هست که فرم شما رو باشه یا اکتیو باشه من میخوام زمانی که فرمم minimaz هست با زدن یک کلید ، فرم به حالت maximaz در بیاد ؟