PDA

View Full Version : گفتگو: همه چی در مورد کد اسکی و رویداد های keypress و keydown



mina.net
پنج شنبه 15 اسفند 1387, 09:47 صبح
سلام دوستان
من در حال نوشتن یک برنامه حسابداری هستم . می خوام بیشتر عملیات تو برنامه ام با صفحه کلید باشه ولی با مشکلاتی مواجه شدم . مثلا فهمیدم برنامه کد اسکی f10 و f9 هر دو را 18 بر می گردونه و همچنین کد اسکی f5 و backspase هر دو را عدد 8 بر می گردونه. من از کد زیر برای به دست آوردن کد اسکی استفاده می کنم . MsgBox(Asc(e.KeyChar)) تو رویداد keypress استفاده می کنم
یک سوال دیگه اینکه این کد برای رویداد Form1_KeyPress کار نمی کنه یعنی من می خوام برای بستن فرم نیز از صفحه کلید استفاده بشه یعنی وقتی کلید Esc رو کاربر فشار داد برنامه بسته بشه. البته زمانی که فرم خالی باشه یعنی هیچ کنترلی مخصوصا textbox نداشته باشه انجام می شه من می خوام روی Focus روی هر کنترلی هست فرقی نکنه با فشردن کلید Esc فرم بسته بشه.
سوال دیگه بعضی از کلید ها چیزی برنمی گردونن مثل f6 و Delete
مطلب دیگه استفاده از رویداد keydown است که باز هم نتیجه رضایت بخشی نداشت کدی که اونجا استفاده می کنم MsgBox(Asc(e.KeyCode)) هست.
دوستان تو این تاپیک هرچی در مورد کار با صفحه کلید می دونید بنویسید. سوالات زیادی مطرح کردم. دارم تحقیق می کنم همه اون چیز ی که در مورد کار با صفحه کلید لازمه رو در بیارم البته با کمک دوستان.

Ali_Mor
پنج شنبه 15 اسفند 1387, 21:59 عصر
اگر خاصیت keyPriview فرم را ترو کنی میتونی رویدادهای صفحه کلید رو در فرم کنترل کنی
در رویداد KeyDown راحت میتونی بین F9,F10 تفاوت رو احساس کنی

Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If e.KeyCode = Keys.F9 Then
MsgBox("F9")
ElseIf e.KeyCode = Keys.F10 Then
MsgBox("F10")
End If
End Sub
فکر کنم اگر طبق مثال روی همین رویدادKeyDown کار کنی خیلی از مشکلاتت حل بشه

mina.net
جمعه 16 اسفند 1387, 12:53 عصر
سلام دوستان و تشکر از ali_mor
من خودم رو درگیر کد اسکی کرده بودم خیلی وقت صرف کرده بودم . نمی دونستم به همین راحتی هست. البته حال که می دونم راحت هست. ممنون از راهنمایی که کردی

mina.net
جمعه 16 اسفند 1387, 20:55 عصر
سلام دوستان
یک مشکل جدید . من برای رویداد keydown کدی نوشتم که اگر کاربر روی f10 زده شد عملی انجام شود اما به جای اینکه اون دستور انجام بشه برنامه babylon اجرا می شه برای اینکه babylon اجرا نشه چکار کنم
ممنون می شم راهنمایی کنید.

kh_rouhi
شنبه 17 اسفند 1387, 09:31 صبح
سلام دوستان
یک مشکل جدید . من برای رویداد keydown کدی نوشتم که اگر کاربر روی f10 زده شد عملی انجام شود اما به جای اینکه اون دستور انجام بشه برنامه babylon اجرا می شه برای اینکه babylon اجرا نشه چکار کنم
ممنون می شم راهنمایی کنید.

سلام دوست عزیز
برای حل مشکلت یا برنامه ی babylon رو کامل ببندش. یعنی از قسمتی که ساعت هست exit کن.یا اینکه برو تو تنظیماتش کلید پیش فرض برای فراخوانی babylone رو عوض کن.

mina.net
شنبه 17 اسفند 1387, 11:52 صبح
سلام دوست عزیز
برای حل مشکلت یا برنامه ی babylon رو کامل ببندش. یعنی از قسمتی که ساعت هست exit کن.یا اینکه برو تو تنظیماتش کلید پیش فرض برای فراخوانی babylone رو عوض کن.
سلام دوست عزیز
من می تونم اینکار رو برای خودم انجام بدم اما فرض کنید f10 نه هر کلید دیگه ممکنه یک برنامه دیگه رو فراخوانی کنه تازه من و شما می تونیم تنظیمات babylon را عوض کنیم .اما من دارم یک برنامه حسابداری می نویسم برای غشری که شاید خیلی اندک با کامپیوتر اشنای دارند.
باید راهی پیدا کنیم که موقعی برنامه ما در حال اجرا است صفحه کلید فقط برای برنامه ما (که بالای همه برنامه ها است )کار کنه.
اگه دوستان کمک کنن ممنون می شم.

mina.net
یک شنبه 18 اسفند 1387, 21:39 عصر
سلام دوستان
کسی قصد کمک نداره. خیلی مهمه برای من