PDA

View Full Version : از کار انداختن کلید Shift



hr0694
شنبه 29 مرداد 1390, 02:40 صبح
سلام
چگونه میتوانم کلید Shift را غیر فعال و از کار بیندازم

setroyd
شنبه 29 مرداد 1390, 12:53 عصر
تو محیط vb ؟؟
تو keyup ,down تعریف کن که اگه کلید فشرده شد keycode =0 و shiftesh .

hr0694
دوشنبه 31 مرداد 1390, 02:19 صبح
من خوب متوجه نشدم مثلا من یک Text روی Form دارم دقیقا چه کدی بنویسم و چه رویدادی را انتخاب کنم که دکمه Shift از کار بیفته کدش را اگر میشود دقیقا واسم بنویسید

setroyd
دوشنبه 31 مرداد 1390, 04:34 صبح
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 16 Then KeyCode = 0
If Shift = 1 Then Shift = 0
End Sub

setroyd
دوشنبه 31 مرداد 1390, 04:34 صبح
با api بهتره چون کاملا دست user رو میشه بست .

hr0694
سه شنبه 01 شهریور 1390, 12:04 عصر
سلام
جناب setroyd (http://barnamenevis.org/member.php?183390-setroyd) من دقیقاً همین کدی را که نوشتیدبرای Text1 نوشتم اما دکمه Shift برای Text1 از کار نیفتاد

محسن واژدی
سه شنبه 01 شهریور 1390, 12:38 عصر
سلام علیکم
قبلا" راجع به کامپوننت EventVB.dll توضیحاتی دادم، همچنین ضمیمه شد، اما اگر روش جناب setroyd (http://barnamenevis.org/member.php?183390-setroyd) عمل کرد بهتر است

موفق باشید

quiet_programmer
سه شنبه 01 شهریور 1390, 13:14 عصر
با سلام.

روی فرم یه تکس باکس بزار و کد زیر رو تو قسمت کد پیست کن. البته فقط برای حروف a تا z و A تا Z درست کار میکنه و برای بقیه کلیدها من KeyAscii رو صفر کردم که اصلا عمل نکنه. جالبه! امتحانش کن.

Dim ShKeyDowned As Boolean

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If Shift = 1 Then
ShKeyDowned = True
Else
ShKeyDowned = False
End If
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
If ShKeyDowned = True Then
If (KeyAscii >= 65 And KeyAscii <= 90) Then
KeyAscii = KeyAscii + 32
ElseIf (KeyAscii >= 97 And KeyAscii <= 122) Then
KeyAscii = KeyAscii - 32
Else
KeyAscii = 0
End If
End If
End Sub

setroyd
سه شنبه 01 شهریور 1390, 14:34 عصر
در واقع کار این کد از کار انداختن نیست کاراکتر هارو با شیفت محدود میکنه . ولی کد خوبیه برای اینکه در یک محدوده استفاده بشه . ولی اگه کلا بخوای شیفت رو از کار بندازی باید از api استفاده کنی .

quiet_programmer
سه شنبه 01 شهریور 1390, 14:45 عصر
با سلام.


با api بهتره چون کاملا دست user رو میشه بست .


ولی اگه کلا بخوای شیفت رو از کار بندازی باید از api استفاده کنی .

هی میگه API، API!
خوب بابا این دستور API رو بزار مارو هم خلاص کن دیگه!