سلام
1. می خوام شکل کلی تابع KeyPress
کد:
Private Sub Form_KeyPress(KeyAscii As Integer)
End Sub
می خوام واسه کلید F5 بنوسم اگه کلید کردن
مثلا text1 رو با text2 جمع کن
اگه کاید enter زدم
منها کن
2.فرض کنیم و توی form 1 دو مقدار text1 , text2 رو با هم جمع زدم و در داخل text 3 قرار دادم .
و حالا می خوام مقدار text3 در فرم یک رو توی form 2 نشون بدم
سومی هم یادم نماد بعد می نویسم .

1 - يه فرم بساز و داخلش يه ليبل قرار بده. بعد از اجراي برنامه هر كليدي كه فشار بدي كد اون رو مي توني ببيني و از اون تو برنامه ات استفاده كني.
کد php:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Label1 = KeyCode
End Sub
2- بايد با رعايت پدر و فرزند آدرس دهي كني مثل زير :
Di Di نوشته است:1 - يه فرم بساز و داخلش يه ليبل قرار بده. بعد از اجراي برنامه هر كليدي كه فشار بدي كد اون رو مي توني ببيني و از اون تو برنامه ات استفاده كني.
کد php:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Label1 = KeyCode
End Sub
آقای DiDi ایشون تابع KeyPress رو خواستن نه KeyDown رو البته تقریبا
کارکردهای متشابهی دارن اما اینجوری کار می کنه :
کد:
Private Sub Form_KeyPress(KeyAscii As Integer)
Label1.Caption = Chr(KeyAscii)
End Sub
دوست گرامي
چيزي به نام تابع KeyPress وجود نداره بلكه اينها ايونت يا وقايع آبجكتها هستند.
ايشون مي خوان كار با كليدهاي صفحه كليد رو ياد بگيرن. كليدهايي غير از كليدهاي تايپي. من هم راه رو نشون دادم.
در هر صورت بعد از فشرده شدن كليد مثلا F5 بايد كنترل كنيد آيا KeyCode كليد فشرده شده برابر با KeyCode اف پنج هست يا خير و بعد واكنش مناسب روانجام بديد.
نقل قول: يه فرم بساز و داخلش يه ليبل قرار بده. بعد از اجراي برنامه هر كليدي كه فشار بدي كد اون رو مي توني ببيني و از اون تو برنامه ات استفاده كني.
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Label1 = KeyCode
سلام دوست عزیز
اینجا ایبل لازم نداریم
من توی سوال اشتباه کردم
من می خوام از کلید F5 از روی صحفه کلید فشار داده شد
text1 رو با text 2 جمع کنه
من کد اسکی F5 و ENTER رو نمی دونم
لطفا این چیزی که گفتم به صورت کد بنویسید
با تشکر

سلام
دوست عزيز با روشي كه جناب دي دي گفتن كد هر كليدي رو كه بخواي رو مي توني بدست بياري، ايشون يك روش كلي گفتن تا در موارد ديگه دچار مشكل نشي. ازشون ممنونم(هرچند از من زياد خوششون نمياد، ولي بالاخره با ايشون دوست ميشم.)
بهر حال كد كليد اينتر 13 و كد كليد اف5 برابر با 72 است.
سلام دوست عزیز
خیلی ببخشید من یه پست که توسط کاربران داده شده بود رو به طور اتفاقی دیدم
نقل قول: سلام
در رویداد KeyPress کافیه با یک دستور شرطی بررسی کنی که مقدار KeyAscii برابر کد کلید مورد نظر هست یا نه؟
کد کلید های f هم از 112 تا 127 هست.
مثال:
Private Sub Command1_KeyPress(KeyAscii As Integer)
If KeyAscii = 112 Then
Else
End If
End Sub
موفق باشی
http://forum.iranled.com/showthread.php?tid=7372
شما به من گفتید
نقل قول: Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 72 Then
text3 = text1 + text2
Else
any work
End If
End Sub
منظور من از کلید F5 همون کلید های تابعی F هستش .
من در ارسال پاسخ دچار اشتباه شدم. عذر مي خوام
پاسخ صحيح:
کد php:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 72 Then
MsgBox "yes"
End If
End Sub
شما بجاي جعبه پيام كد مورد نظر خودت رو بنويس.
من موندم چرا بجای کدِ اسکی و رویداد KeyPress از مقادیر ثابت کلیدها و رویداد KeyDown استفاده نمی کنید ؟
تو رویداد KeyDown بعد از تایپ عبارت vbkey دکمه ترکیبی Ctrl+Space رو بزنید تا لیست مقادیر ثابت کلیدها ظاهر بشه.
نکته: خاصیت KeyPreview فرم رو True کنید تا اگه Focus روی یکی از آبجکت های فرم بود، رویداد KeyDown خود فرم اجرا بشه.
در ضمن رویداد KeyDown مقدم تر از KeyPress است یعنی زودتر اجرا میشه.
وقتی میخواین چند کلید رو کنترل کنید کافیه یه Select Case توی رویداد KeyDown بنویسید.
مقادیر ثابت برای پارامتر Shift هم به شرح زیر هستند:
vbAltMask , vbCtrlMask, vbShiftMask
اگه بطور مثال خواستین Alt+Shift رو چک کنید که زده شده یا نه از And استفاده کنید.
if Shift = vbAltMask And vbShiftMask Then
KeyDown با وجود تقدم اجراش نسبت به KeyPress یه ایراد داره: برای انکار فشرده شدن یک کلید نمی تونید KeyCode رو برابر صفر قرار بدین باید حتما از رویداد KeyPress استفاده کنید و KeyAscii رو مساوی صفر کنید.
![[تصویر: untitled.JPG]](http://mojtabamalaekeh.persiangig.com/image/untitled.JPG)