PDA

View Full Version : سوال: خط چشمک زن داخل تکست



hr0694
جمعه 11 شهریور 1390, 10:57 صبح
سلام
وقتی Multiline برای تکست True است و TabStop برای تکست هم True است با زدن دکمه Tab یا Shift + Tab خط چشمک زن داخل خود تکست به حرکت در می آید چکار کنم که بحرکت در نیاید و سر جایش باقی بماند

محسن واژدی
جمعه 11 شهریور 1390, 11:06 صبح
سلام علیکم
منظور تان را از این جمله "خط چشمک زن داخل خود تکست به حرکت در می آید" متوجه نشدم اگر ممکن بیشتر توضیح دهید چون با زدن این دو کلید ( Tab یا Shift + Tab) فقط فوکوس مابین کنترل ها جابجاد میشود

hr0694
جمعه 11 شهریور 1390, 11:31 صبح
من منظورم اینه که با زدن کلید Tab یا Shift + Tab فوکوس از جایش حرکت میکنه وقتی آن دو True باشند

محسن واژدی
جمعه 11 شهریور 1390, 11:44 صبح
احتمالا" قصد غیرفعال کردن کلید های Tabو Shift+Tab را دارید، اگر اینطور است، قبلا" یک مبحث در همین مورد در انجمن ایجاد شد مدت زیادی نیست در پست قبل جستجو کنید حتما" میابید

موفق باشید

hr0694
جمعه 11 شهریور 1390, 12:02 عصر
خودتان روی فرم یک تکست بگذارید بعد Multiline و TabStop را برای تکست True کنید بعد کلید Tab یا Shift + Tab را فشار دهید فوکوس حرکت میکنه من فقط میخواهم بدونم چکار کنم فوکوس حرکت نکنه و سر جاش بمونه با فشار دادن این کلیدها

محسن واژدی
جمعه 11 شهریور 1390, 12:14 عصر
فکر کنم منظورتان از به حرکت در آمدن چشمک زن اضافه شدن تب به متن باشد، اگر اینگونه است از کد زیر استفاده کنید:

Private Sub Text3_KeyPress(KeyAscii As Integer)
If KeyAscii = 9 Then KeyAscii = 0
End Sub


موفق باشید

hr0694
جمعه 11 شهریور 1390, 12:33 عصر
دستتان درد نکند مشکلم با این کدی که گذاشتید برطرف شد

hr0694
جمعه 11 شهریور 1390, 13:08 عصر
دوست عزیز با این کد که گفتید کلید Tab و Shift + Tab از کار افتاد اما من اگر بخواهم Ctrl + Tab هم از کار بیفتد چه کدی بنویسم نمیخواهم خود کلید Ctrl از کار بیفتد فقط کلید ترکیبی Ctrl + Tab

محسن واژدی
جمعه 11 شهریور 1390, 13:43 عصر
برای این از کد زیر استفاده کنید:

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyTab Then KeyCode = 0
End Sub
موفق باشید

setroyd
جمعه 11 شهریور 1390, 13:50 عصر
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyControl and Shift = vbKeyTab Then KeyCode = 0
End Sub

محسن واژدی
جمعه 11 شهریور 1390, 17:14 عصر
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyControl and Shift = vbKeyTab Then KeyCode = 0
End Sub

چون کلید تب در KeyCode ذخیره میشود، در این صورت نمیتوان فشرده شدن همزمان کلیدهای Ctrl+Shift را توسط رویداد KeyDown تشخیص داد به همین دلیل مجبور به استفاده از Or بجای And هستیم

setroyd
جمعه 11 شهریور 1390, 18:44 عصر
خوب اینجوری or کار and انجام میده !؟

محسن واژدی
جمعه 11 شهریور 1390, 20:13 عصر
طبیعتا" نه، الآن که مجددا" پست شماره 8 را خواندم گفته بودند نمیخواهند ctrl غیرفعال شود، پس برای از جلوگیری از عمل Tab کافیست کدهای زیر را در ماژول فرم کپی کنند:

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)

If KeyCode = vbKeyTab Then KeyCode = 0

End Sub
Private Sub Text3_KeyPress(KeyAscii As Integer)

If KeyAscii = 9 Then KeyAscii = 0

End Sub


موفق باشید