PDA

View Full Version : یک سوال برای پرش بین Textbox با کلید Enter



mpmsoft
دوشنبه 12 آذر 1386, 21:14 عصر
سلام دوستان من یک سوال دارم من کد این کد رو نوشتم.


Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode=13 Then Text2.SetFocus
End Sub


بعد از زدن دکمه Enter جهش انجام می شه ولی یک صدای Beep میاد

اگر بخواهیم این صدا نیاد چیکار باید بکنیم

roozbeh_black
دوشنبه 12 آذر 1386, 22:18 عصر
سلام.!
ممکنه کمی غیر استاندارد باشه اما بزرگان به بزرگی خودشون ببخشن.!
چیزی که به نظر من رسید این بود.!
اولا خاصیت MultiLine تکس ها True باشه و بعد با استفاده از کد زیر مشکل حل میشه.!
(امتحان کن خبرشو بده)

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
Text1.Locked = True
Text2.SetFocus
End If
End Sub

همینطور در Textbox دوم برای اینکه امکان ویرایش یا هر کار دیگه Text1 وجود داشته باشه
می نویسیم.

Private Sub Text2_GotFocus()
Text1.Locked = False
End Sub

amini699
دوشنبه 12 آذر 1386, 23:24 عصر
این کد رو بنویس

Private Sub Text14_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
SendKeys "{Tab}"
End If
If KeyAscii = 13 Then KeyAscii = 0
End Sub

__siavash__
دوشنبه 12 آذر 1386, 23:48 عصر
اون صدای بیپ برای اینه که در تکست باکسی که خاصیت MultiLine فعال نیست فشردن اینتر معنایی نداره و خطا هستش

MFiRE
سه شنبه 13 آذر 1386, 01:10 صبح
به نظر من بلندگو تو خاموش کن مشکل حله !!!!!!!!
هیچ صدایی نمی شنویی ...

شوخی کردم جدی نگیرید .

Hossein Bazyan
سه شنبه 13 آذر 1386, 10:56 صبح
سلام
من در برنامه هام همیشه از این تکه کد خودم استفاده میکنم و مشکلی هم پیش نیومده و خوب هم کار میکنه .
( من همیشه در وی بی 6 Textbox ها را به شکل آرایه تعریف میکنم که کار را راحت تر میکنه شما میتوانید آرایه تعریف کنید یا خیر)


Private Sub txtNewKlant_KeyPress(Index As Integer, KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
txtNewKlant(Index + 1).SetFocus ' Next text box
End If
End Sub

DoctorJay
سه شنبه 13 آذر 1386, 12:29 عصر
جواب دوستان همه درسته , حالا مال منو هم داشته باشی بیضرر نیست :


"اندیس ها باید از 1 شروع بشن"

اینجا Name تکستها TEXT میباشد



' DoctorJay ---------------------------------------------------------------------------------

Private Sub Text_KeyPress(Index As Integer, KeyAscii As Integer)

If Index = تعداد اندیس Then Index = 0

If KeyAscii = 13 Then Text(Index + 1).SetFocus

End Sub

' DoctorJay --------------------------------------------------------------------------------

Hossein Bazyan
سه شنبه 13 آذر 1386, 12:47 عصر
جواب دوستان همه درسته , حالا مال منو هم داشته باشی بیضرر نیست :


"اندیس ها باید از 1 شروع بشن"

اینجا Name تکستها TEXT میباشد






' DoctorJay ----

Private Sub Text_KeyPress(Index As Integer, KeyAscii As Integer)

If Index = تعداد اندیس Then Index = 0

If KeyAscii = 13 Then Text(Index + 1).SetFocus

End Sub

' DoctorJay ---------

سلام
به این شکل قشنگتر و خواناتر نیست ؟

DoctorJay
سه شنبه 13 آذر 1386, 14:08 عصر
کاملا حق با شماست .... ولی هنوز نمی دونم اینو چجوری باید اضافه کنم ... بگی ممنون میشم

Hossein Bazyan
سه شنبه 13 آذر 1386, 15:12 عصر
کاملا حق با شماست .... ولی هنوز نمی دونم اینو چجوری باید اضافه کنم ... بگی ممنون میشم

سلام
برای نوشتن نقل قول از تگهای
نقل قول و برای نوشتن کد از تگهای
کد استفاده میشود. مانند عکس ضمیمه

DoctorJay
سه شنبه 13 آذر 1386, 21:23 عصر
از راهنماییتون خیلی خیلی ممنونم ... از این به بعد رعایت می کنم , ممنون که یادآوری کردین

من Browser ام Opera است , واسه همین آیکونهای ویراشم ToolTip ندارن ( این یه توجیه نبود )
---------------------------------------------------------------------------------------

تصور کن اگر قرار بود هر کس به اندازه ی دانش خود حرف بزند چه سکوتی بر دنیا حاکم میشد ... ..... ناپلئون