PDA

View Full Version : سوال: مشکل با KeyDown



takgig
چهارشنبه 24 آبان 1391, 20:38 عصر
من از کد زیر استفاده می کنم تا اگر ctrl+F12 فشرده شد کاری رو انجام بده ولی اصلاً عمل نمی کنه.

private void Login_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.F12)
{
UserAdd fm2 = new UserAdd();
this.Hide();
fm2.ShowDialog();
Login_Load(sender, e);
}
}


خاصیت keypreview فرم رو هم true کردم .

harani
چهارشنبه 24 آبان 1391, 22:00 عصر
از این کد استفاده کن ببین درست میشه ؟؟؟
به نظر من اول Login_Load و Key Down ت رو تو یه متد جداگانه بنویس بعد از اونا استفاده کن :



void Load_MyForm(){//d
//کدهای لود فرمت
}




private void Login_Load(object sender, EventArgs e)//a
{
Load_MyForm();//k
}



private void KeyDown(KeyEventArgs e)//a
{
if (e.Control && e.KeyCode == Keys.F12)//a
{
UserAdd fm2 = new UserAdd();//b
this.Hide();//c
fm2.ShowDialog();//d
Load_MyForm();//k
}

}


حالا بنویس :

private void Login_KeyDown(object sender, KeyEventArgs e)//a
{

KeyDown(e);//s

}

ali.bahrami
پنج شنبه 25 آبان 1391, 09:45 صبح
دوست عزیز شما فقط برای فرم تون رویداد keyDown نوشتین . چون در اجرای برنامه ممکنه فکوس روی کنترل دیگری باشه. برای این کار بایستی برای تمام کنترلهایی که در طول برنامه ممکنه فکوس روی آنها قرار بگیره رویداد keyDown‌بنویسی.

takgig
پنج شنبه 25 آبان 1391, 12:10 عصر
با هیچ کدام از راههای گفته شده نشد .

امکان داره یک نمونه که کار می کنه قرار بدهید ؟

takgig
پنج شنبه 25 آبان 1391, 12:24 عصر
من با این کد تونستم .یک نفر توضیحش می ده این چیه ؟توی نت پیداش کردم .
InitializeComponent();
زیر کد بالا نوشتم :



this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_Ke yDown);

afshin_1989
پنج شنبه 25 آبان 1391, 15:03 عصر
عزیز فکر کنم اولویت عملگر مقایسه == از عملگر && پایین تر هست قسمت تساوی داخل پرانتز بنویس.

مهرداد صفا
پنج شنبه 25 آبان 1391, 15:39 عصر
من با این کد تونستم .یک نفر توضیحش می ده این چیه ؟توی نت پیداش کردم .
InitializeComponent();
زیر کد بالا نوشتم :



this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_Ke yDown);
سلام
احتمالا شما کد مربوط به KeyDown را کپی کرده بودید یا دستی نوشته بودید که به هر حال کد روال را به رویداد KeyDown فرم اضافه نکرده بودید. این کد روال form1_KeyDown را به رویداد KeyDown فرم اضافه کرده است. حالا با هر بار KeyDown کدهایی که در form1_KeyDown نوشتید اجرا میشود.