PDA

View Full Version : چجوری نذاریم کاربر کاراکتر غیر مجاز وارد کنه؟



vbapr2005
یک شنبه 09 مرداد 1384, 13:03 عصر
سلام بچه ها.
من فقط میخوام که نذارم کاربر برای یه Text Box مقادیر غیر مجاز وارد کنه. اما متاسفانه اینو هم بلد نیستم بنویسم.
اینم کدیه که نوشتم :

'In a Module
Public Sub StringIt(ByVal Text As String)
If Asc(Right(Text, 1)) = 32 Or (64 < Asc(Right(Text, 1)) And _
Asc(Right(Text, 1)) < 91) Or (96 < Asc(Right(Text, 1)) And _
Asc(Right(Text, 1)) < 123) Then
Else
Text = LastText
Beep()
End If
End Sub
'In the form containing the text boxes
Private Sub txtName_TextChanged(...) Handles txtName.TextChanged, ...
LastText = sender.text
StringIt(sender.text)
End Sub

اون دستور هایی که بعد از If نوشتم برای اینه که ببینه کاراکتر مورد نظر حروف کوچک یا بزرگ یا فاصله هست یا نه. اگه جز این سه تا بود که هیچی اما اگه نبود Beep() اجرا میشه و اون چیزی که اول توی اون جعبه ی متن بود رو میاره
یعنی مثلا میخواستم که اصلا نذاره کاربر کاراکتری غیر از اینا رو وارد کنه.
ای خدا.................

Ehsan Zand
یک شنبه 09 مرداد 1384, 13:45 عصر
سلام
بنظرم میتونی از Masked Edit استفاده کنی که اجازه می ده که مثلا فقط عدد یا
فقط حروف با اندازه مشخص تایپ بشه. که طرز استفاده از اون رو تو MSDN خوب
و تقریبا کامل توضیح داده.

vbapr2005
یک شنبه 09 مرداد 1384, 15:03 عصر
دستت درد نکنه. اونجا رو یه نگاهی میندازم
اما آخه این کدی که من نوشتم چرا غلطه؟

بابک زواری
یک شنبه 09 مرداد 1384, 16:53 عصر
عنوان تاپیک رو اصلاح کنید در غیر اینصورت بحث قفل میشه

vbapr2005
یک شنبه 09 مرداد 1384, 17:12 عصر
چشم، اما فکر کردم به سوالم جواب دادی آقا بابک

vbapr2005
یک شنبه 09 مرداد 1384, 20:35 عصر
البته این راه رو براش نوشتم که درست کار میکنه اما مکان نما رو به ابتدای Text Box میاره.

[Public Function StringIt(ByVal Text As String) As String
Dim RightText As String
Dim I As Integer
For I = 0 To Text.Length - 1
If Asc(Text.Chars(I)) = 32 Or (64 < Asc(Text.Chars(I)) _
And Asc(Text.Chars(I)) < 91) Or (96 < Asc(Text.Chars(I)) _
And Asc(Text.Chars(I)) < 123) Then
RightText = RightText & Chr(Asc(Text.Chars(I)))
Else
'Do Nothing
End If
Next
Return RightText
End Function

این یه تابعه که اگه بخوایم توی یک تکست باکس کاربر فقط حرف و فاصله وارد کنه باید بنویسیم:

txtName.Text=StringIt(txtName.Text)
فقط همون طور که گفتم نمیدونم چرا مکان نما رو به اول خط میاره. اگه برای این مشکل راهی دارید توی http://www.barnamenevis.org/forum/showthread.php?t=25654 بگید.
ممنون

habedijoo
دوشنبه 10 مرداد 1384, 14:00 عصر
سلام به همه دوستان
این سوال شما به چند بخش تقسیم میشه .
1 - چطور می توان یه TextBox را طوری تنظیم کرد که فقط حرف و یا فقط کاراکتر بگیره .
2 - چطور می توان یه TextBox رو طوری تنظیم کرد که بتواند یه فرمت خواص از رشته ( مثلا یک ایمیل ) را بگیرد . برای این کار باید از عبارات با قاعده استفاده کرد .

یه جایی را مشخص کن که مربوط به این بحث باشه تا بکمک سایر دوستان بطور کامل جوابت را بدهیم .
اگر نبود برام پیغام خصوصی بزار تا برات مثال بزارم .

vbapr2005
دوشنبه 10 مرداد 1384, 15:40 عصر
کجا بهتر از همین تاپیک؟
چرا همین جا راجع به این سوال بحث نکنیم؟
فکر میکنم قسمت دوم حرفت، قسمت اول رو هم شامل بشه.
راجع به تابع فرمت، من همیشه فکر می کردم (و هنوز هم همینطوره) که بهترین استفاده اش برای تاریخ و زمانه که تعداد کاراکتر های ورودی معلومه.