PDA

View Full Version : دلیل اجرا نشدن رویداد KeyDown فرم!



Fastdesign
سه شنبه 01 اسفند 1391, 16:43 عصر
با سلام خدمت دوستان برنامه نویس

تو فرم برنامم یک تب کنترل دارم و چند تایی باتن. به این صورت که تعدادی از باتن ها در تب کنترل قرار دارن و تعدادی در فرم.

حالا می خوام با کدهای زیر در رویداد KeyDown فرم، کدهای نوشته شده در باتن هایی که روی خود فرم هستن را اجرا کنم :
if (e.KeyCode == Keys.F2)
{
e.SuppressKeyPress = true;
button6_Click(null, null);
}
مشکل اینجاست که وقتی می خوام کدهای بالا را برای باتن هایی که درون خود فرم قرار دارن بنویسم ، موقع اجرا ، کدهای درون باتن رو اجرا نمی کنه !
ولی برای باتن هایی که داخل تب کنترل هستند اجرا میشه !

به نظر شما مشکل از کجاست؟

مهرداد صفا
سه شنبه 01 اسفند 1391, 18:59 عصر
با سلام
کاملا متوجه منظور نشدم اگر ممکنه بیشتر توضیح دهید. ولی در هر صورت مطمئن شوید که خصوصیت KeyPreview فرم برابر true باشد و چک کنید که اصلا رویداد KeyDown فرم اتفاق می افتد یا نه؟

Fastdesign
سه شنبه 01 اسفند 1391, 20:45 عصر
خاصیت KeyPreview برابر True است.

همانطور که در پست1 گفتم : تو فرم ، یک کنترل تب کنترل دارم که یکسری باتن داخلش است . و یکسری دیگه باتن داخل خود فرم قرار داره یعنی ربطی به تب کنترل نداره.

حالا وقتی با کدهای نوشته شده درپست 1 در رویداد keyDown فرم برای اجرای کدهای نوشته شده در یکی از باتن ها که در خارج از تب کنترل قرار داره می نویسم دستورات داخل باتن اجرا نمیشه!
ولی اگه کدهای پست1 برای یک باتن که در تب کنترل قرار داره بنویسم ، اون دستورات را اجرا می کنه !

حالا من نمی دونم دلیلش چیه که، دستورات داخل باتنی که داخل تب کنترل قرار داره را اجرا می کنه ولی دستورات باتنی که در خود فرم قرار داره را اجرا نمی کنه!

the king
سه شنبه 01 اسفند 1391, 23:47 عصر
امتحان کردم اما در عمل وضعیتی که شما داشتید پیش نیومد، احتمالا یک اشکال کوچیک در کد فرم تون هست که از دید تون دور مونده.

Fastdesign
چهارشنبه 02 اسفند 1391, 06:59 صبح
امتحان کردم اما در عمل وضعیتی که شما داشتید پیش نیومد، احتمالا یک اشکال کوچیک در کد فرم تون هست که از دید تون دور مونده.
بله، من هم در پروژه دیگر امتحان کردم درست جواب می داد ولی در این پروژه نمی دونم چرا کار نمی کنه!

به نظر دوستان که در این زمینه شاید تجربه ی بیشتری داشته باشند می تونه مشکل از چی باشه؟



با تشکر