PDA

View Full Version : سوال: استفاده از کلید اینتر به جای کلید تب



reza10203045
چهارشنبه 29 آبان 1387, 14:10 عصر
سلام دوستان من چه جوری می تونم از کلید اینتر به جای کلید تب استفاده کنم
و وقتی که اندکس به تکس باکس بعدی رفت رنگ زمینه تکس باکس هم تغییر کنه
مثل برنامه های بانک ها اگه نمومه کدی بزارید ممنون می شم

OCTAGON
چهارشنبه 29 آبان 1387, 14:25 عصر
دوست عزیز از کد زیر استفاده کنید
اصولا وقتی وارد یک فیلد می شوید GotFocus اجرا می شود که به معنی کردن Focus است و وقتی هم که از فیلد خارج می شوید LostFocus اجرا می شود که به معنی از دست دادن Focus است. پس شما باید وقتی وارد شدید رنگ را تغییر و وقتی خارج شدید رنگ را به حالت اول برگردانید.


Private Sub TxtCode_GotFocus()
TxtCode.Backcolor = &HC0FFC0
End Sub

Private Sub TxtCode_LostFocus()
TxtCode.Backcolor = vbWhite
End Sub


برای اینکه بجای Tab از Enter استفاده کنید هم از کد زیر استفاده کنید:



Private Sub Nam_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyUp Then Add.SetFocus: Exit Sub
If KeyCode = vbKeyDown Or KeyCode = vbKeyReturn Then Candid.SetFocus: Exit Sub
End Sub


جهت توضیح عرض کنم که در این کد شما کلیدهای فشار داده شده را بررسی می کنید اگر Enter یا کلید پائین باشد به فیلد بعدی یا هر جا که خواستید می روید و برای کلید بالا هم همینطور می توانید به فیلد قبلی یا محل دیگری بروید

موفق باشید.
امیر

vbhamed
چهارشنبه 29 آبان 1387, 15:46 عصر
سلام
با اجازه OCTAGON عزيز نمونه ايندكسي رو هم مي زارم
ابتدا چند تا TextBox به نام txt و انديس دار رو فرم بزاريد و بعد كدهاي زير رو Paste كنيد
تو اين نمونه با كليد Enter به جلو و با كليد Shift+Enter به عقب حركت مي كنه و تعداد TextBox ها هم دلخواه هست



Private Sub txt_GotFocus(Index As Integer)

txt(Index).BackColor = vbYellow

End Sub

Private Sub txt_LostFocus(Index As Integer)

txt(Index).BackColor = vbWhite

End Sub

Private Sub txt_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)

Select Case KeyCode

Case vbKeyReturn
KeyCode = 0

If Shift = 0 Then
If Index < txt.Count - 1 Then txt(Index + 1).SetFocus Else txt(0).SetFocus

ElseIf Shift = vbShiftMask Then
If Index > 0 Then txt(Index - 1).SetFocus Else txt(txt.Count - 1).SetFocus

End If

End Select

End Sub

ali_habibi1384
چهارشنبه 29 آبان 1387, 16:43 عصر
در باره سوال اولتون که ساده است . شما کافیه در رویداد keypress تکست باکستون کد زیر رو بنویسید:


if keyascii=13 then sendkeys"{TAB}"

درباره سوال دومتون هم باید بگم در این باره داره یه ocx درست می کنم که یکی از قابلیتهاش همینه. به محض اینکه کامل شد توی سایت آپلودش می کنم.

mahmood_s
پنج شنبه 30 آبان 1387, 13:35 عصر
در باره سوال اولتون که ساده است . شما کافیه در رویداد keypress تکست باکستون کد زیر رو بنویسید:


if keyascii=13 then sendkeys"{TAB}"

درباره سوال دومتون هم باید بگم در این باره داره یه ocx درست می کنم که یکی از قابلیتهاش همینه. به محض اینکه کامل شد توی سایت آپلودش می کنم.

با اجازه

اینم اضافه کنید تا صدای کیس در نیاد :




if keyascii=13 then sendkeys"{TAB}" : keyascii=0

Danial_Yousefi
پنج شنبه 30 آبان 1387, 17:31 عصر
به این پست هم سر بزن ببین به دردت می خوره؟


http://barnamenevis.org/forum/showthread.php?t=74817