View Full Version : سوال: سؤال در مورد فرم و تکست
Hassan2500
سه شنبه 26 اردیبهشت 1391, 13:24 عصر
سلام
1- من میخوام اگه فرم رو با موس گرفتم بتونم تکونش بدم ولی در حالت عادی باید برای تکان دادن فرم نوار آبی بالای فرم رو گرفت کدش چی میشه
2- چه کدی باید نوشته شود که اگر فاصله بین هر حرف تکست1 از یکی بیشتر شد چه در پیست چه در نوشتن فاصله یکی بشود و فوکوس هم سرجایش بماند و به اول یا آخر تکست نپرد
3- چه کدی بنویسم که اگه سه خط که بصورت vbnewline در تکست1 بودند رو کپی کردم در تکست2 این سه خط بصورت یک خط شوند و فاصله شان که از vbnewline بوجود می آید از بین رود در ضمن مولتی لاین دو تکست True است
مثال
تکست1
ایران
کشور
من
تکست2
ایران کشور من
محسن واژدی
سه شنبه 26 اردیبهشت 1391, 13:33 عصر
1- من میخوام اگه فرم رو با موس گرفتم بتونم تکونش بدم ولی در حالت عادی باید برای تکان دادن فرم نوار آبی بالای فرم رو گرفت کدش چی میشهسلام علیکم
کد زیر را در مادول فرم کپی کنید:
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
On Error Resume Next
If Button = vbKeyLButton Then
Call ReleaseCapture
SendMessage Me.hwnd, &HA1, 2, 0&
End If
End Sub
2- چه کدی باید نوشته شود که اگر فاصله بین هر هرف تکست1 از یکی بیشتر شد چه در پیست چه در نوشتن فاصله یکی بشود و فوکوس هم سرجایش بماند و به اول یا آخر تکست نپردکد زیر را بررسی کنید:
Private Sub Text1_Change()
Dim iSS%, iSL%
iSS% = Text1.SelStart
If InStr(1, Text1, Space(2)) > 0 Then
Do
Text1 = Replace(Text1, Space(2), " ")
Loop Until InStr(1, Text1, Space(2)) = 0
End If
Text1.SelStart = iSS%
End Sub
3- چه کدی بنویسم که اگه سه خط که بصورت vbnewline در تکست1 بودند رو کپی کردم در تکست2 این سه خط بصورت یک خط شوند و فاصله شان که از vbnewline بوجود می آید از بین رود در ضمن مولتی لاین دو تکست True است کدی مشابه زیر:
Private Sub Text2_Change()
If InStr(1, Text2, vbNewLine) > 0 Then
Text2 = Replace(Text2, vbNewLine, " ")
End If
End Sub
البته باید در این کد دقت بیشتری شود
موفق باشید
Hassan2500
سه شنبه 26 اردیبهشت 1391, 23:21 عصر
کد سؤال1 و 3 بخوبی کار میکنه اما کد سؤال2 وقتی فوکوس میان حروف قرار میگیره و دکمه فاصله رو میگیریم فوکوس بحرکت درمی آد من میخام فوکوس بحرکت در نیاد ولی اگر بین دو حرف قرار گرفت که چسبیده بودند فاصله بندازه و بعد سرجاش بمونه
محسن واژدی
چهارشنبه 27 اردیبهشت 1391, 10:10 صبح
کد سؤال1 و 3 بخوبی کار میکنه اما کد سؤال2 وقتی فوکوس میان حروف قرار میگیره و دکمه فاصله رو میگیریم فوکوس بحرکت درمی آد من میخام فوکوس بحرکت در نیاد ولی اگر بین دو حرف قرار گرفت که چسبیده بودند فاصله بندازه و بعد سرجاش بمونه
بله، طبیعتا اگر فاصله ها را حذف کنیم متن کوتاه تر میشود، البته کرت سرجایش است و این کلمات هستند که عقب میروند، و تعیین اینکه کرت قبلا بر روی کدام کلمه قرار داشته مشکل میشود
Hassan2500
چهارشنبه 27 اردیبهشت 1391, 11:15 صبح
آقای واژدی میشه گفت اگه فوکوس وسط دو حرفی قرار گرفت که بهم چسبیده بودن و دکمه فاصله رو زدیم یه فاصله بینشون بندازه و اگه یه فاصله داشتند دیگه دکمه فاصله کار نکنه میشه این رو به کد سؤال 2 اضافه کنی
محسن واژدی
چهارشنبه 27 اردیبهشت 1391, 14:57 عصر
سلام
نمونه زیر را بررسی کنید
برای استفاده کافی است مادول همراه نمونه را به برنامه اضافه کنید، و دو کد زیر را در رویداد های Change و KeyPress شی Text-Box قرار دهید:
Private Sub Text1_Change()
CheckTextBoxContent Text1
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
CheckTextBoxKeyPress Text1, KeyAscii
End Sub
روال CheckTextBoxContent را در رویداد Change و CheckTextBoxKeyPress را در KeyPress هر text-boxیی که میخواهید space را در آن محدود کنید قرار دهید
موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.