PDA

View Full Version : سوال: درخواست متدی برای keypress



shahramap
پنج شنبه 06 شهریور 1393, 16:08 عصر
با سلام

یه متد میخوام که وقتی بار اول کلید f1 فشار داده میشود دیتاگرید نشان داده شود ولی اگر مجددا این کلید یعنی همان f1 فشار داده شد دیتا گرید پنهان شود....کسی بتونه این متد رو بهم بده ممنونش میشم. باتشکر

parvizwpf
پنج شنبه 06 شهریور 1393, 16:51 عصر
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.F1)
{
datagridview.Visible=!datagridview.Visible;
}

// Call the base class
return base.ProcessCmdKey(ref msg, keyData)
}

mz6488
پنج شنبه 06 شهریور 1393, 16:51 عصر
سلام.تو رویداد keyDown دستور زیر رو بنویس

if(e.KeyCode==Keys.F1)
DataGridView1.Visible=!DataGridView1.Visible;

shahramap
پنج شنبه 06 شهریور 1393, 17:30 عصر
مرسی
parvizwpf (http://barnamenevis.org/member.php?243106-parvizwpf) فراخوانی این متد چطوره؟؟؟
مرسی mz6488 (http://barnamenevis.org/member.php?261140-mz6488)
ولی اینو خودم نوشته بودم اما جواب نداد....

Mori Bone
پنج شنبه 06 شهریور 1393, 17:33 عصر
مرسی
parvizwpf (http://barnamenevis.org/member.php?243106-parvizwpf) فراخوانی این متد چطوره؟؟؟
مرسی mz6488 (http://barnamenevis.org/member.php?261140-mz6488)
ولی
اینو خودم نوشته بودم اما جواب نداد....
مشکل چیه؟ کدها درسته

shahramap
پنج شنبه 06 شهریور 1393, 17:38 عصر
مشکل چیه؟ کدها درسته


اون متد بالا رو متوجه نشدم اون متغییر message واسه چی هست ؟؟؟ و فراخوانیش به چه صورته؟؟

shahramap
پنج شنبه 06 شهریور 1393, 17:44 عصر
سلام.تو رویداد keyDown دستور زیر رو بنویس

if(e.KeyCode==Keys.F1)
DataGridView1.Visible=!DataGridView1.Visible;



این دستور با دستور زیر مگه یکی نیست؟؟


if (e.KeyCode == Keys.F1)
{
DataGridView1.Visible = false;

}

mz6488
پنج شنبه 06 شهریور 1393, 18:27 عصر
این دستور با دستور زیر مگه یکی نیست؟؟


if (e.KeyCode == Keys.F1)
{
DataGridView1.Visible = false;

}

احتمالا خاصیت key preview فرم رو برابر true قرار ندادی.اینو چک کن ببین چی میشه.بعدش دستوری که نوشتی فقط میاد visible رو برابر false قرار میده و برابر true قرار نمیده

Mori Bone
پنج شنبه 06 شهریور 1393, 20:01 عصر
این دستور با دستور زیر مگه یکی نیست؟؟


if (e.KeyCode == Keys.F1)
{
DataGridView1.Visible = false;

}
این چیزی که شما نوشتی برای اینه که موقعی که f11 زده شد کنرل رو مخفی میکنه. ولی شما می خواین که مخفی بود نمایش پیدا کنه، اگه مخفی نبود، مخفیش کنه. پس باید از کد زیر استفاده کنید. یعنی مخالفه وضعیت الان کنترل(not=!)
DataGridView1.Visible=!DataGridView1.Visible;

shahramap
جمعه 07 شهریور 1393, 12:53 عصر
احتمالا خاصیت key preview فرم رو برابر true قرار ندادی.اینو چک کن ببین چی میشه.بعدش دستوری که نوشتی فقط میاد visible رو برابر false قرار میده و برابر true قرار نمیده

key preveiw فرم رو هم true کردم اما نشد،من اینکار رو روی تکس باکس دارم انجام میدم اما با این کد که شما گفتید توی رویداد key down تکس باکس نوشتمش اما فقط دیتاگرید رو نمایش میده دیگه پنهانش نمیکنه با همون f1....!!!!!!!!!!