ايران ويج

نسخه‌ی کامل: سه سوال : key press و ...
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام

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 نشون بدم

سومی هم یادم نماد بعد می نویسم .Question
1 - يه فرم بساز و داخلش يه ليبل قرار بده. بعد از اجراي برنامه هر كليدي كه فشار بدي كد اون رو مي توني ببيني و از اون تو برنامه ات استفاده كني.
کد php:
Private Sub Form_KeyDown(KeyCode As IntegerShift As Integer)
Label1 KeyCode
End Sub 


2- بايد با رعايت پدر و فرزند آدرس دهي كني مثل زير :

کد php:
Form2.Text1=Text3 
Di Di نوشته است:1 - يه فرم بساز و داخلش يه ليبل قرار بده. بعد از اجراي برنامه هر كليدي كه فشار بدي كد اون رو مي توني ببيني و از اون تو برنامه ات استفاده كني.
کد php:
Private Sub Form_KeyDown(KeyCode As IntegerShift 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
سلام دوست عزیزSmile

اینجا ایبل لازم نداریم Exclamation

من توی سوال اشتباه کردم

من می خوام از کلید F5 از روی صحفه کلید فشار داده شد

text1 رو با text 2 جمع کنه

من کد اسکی F5 و ENTER رو نمی دونم
لطفا این چیزی که گفتم به صورت کد بنویسید

با تشکرSmile
سلام
دوست عزيز با روشي كه جناب دي دي گفتن كد هر كليدي رو كه بخواي رو مي توني بدست بياري، ايشون يك روش كلي گفتن تا در موارد ديگه دچار مشكل نشي. ازشون ممنونم(هرچند از من زياد خوششون نمياد، ولي بالاخره با ايشون دوست ميشم.)
بهر حال كد كليد اينتر 13 و كد كليد اف5 برابر با 72 است.
کد php:
Private Sub Form_KeyPress(KeyAscii As Integer)
If 
KeyAscii 72 Then
       text3 
text1 text2
Else
       
'any work
End If
End Sub 

اين هم يك كد نمونه
سلام دوست عزیز

خیلی ببخشید من یه پست که توسط کاربران داده شده بود رو به طور اتفاقی دیدم

نقل قول: سلام
در رویداد 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 IntegerShift 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://i32.tinypic.com/2s1aecj.jpg
این کد ی که نوشتم با زدن f5 فرم دو نمایش داده بشه

این هم عکس تنظیمات انجام شده
http://i25.tinypic.com/20r8h8n.jpg
صفحه‌ها: 1 2