PDA

View Full Version : آموزش: تایپ حالت های مختلف در تکس باکس



behrooz69
سه شنبه 27 آذر 1397, 15:14 عصر
دوستان سلام ، من با این کد میام به تکس باکس میگم فقط عدد وارد شه .

If (Char.IsDigit(e.KeyChar) Or e.KeyChar = Convert.ToChar(Keys.Back)) Then
e.Handled = False
Else
e.Handled = True
MessageBox.Show(" لطفا فقط عدد وارد نمائید ", "هشدار")
End If

حالا ، دوستان همفکری کنن و به من و همه کمک کنن ،

1 - برای فقط نوشتن حروف در تکس باکس از چه کدی استفاده کنیم ؟؟؟

2 - برای جدا کردن 3 رقم 3 رقم مثل ریال چی ؟؟

**** - به پیشنهاد دوستان گل ، قرار شد از کامپاننت استفاده نکنم .

محمد آشتیانی
پنج شنبه 29 آذر 1397, 15:15 عصر
سلام
یک کلاس بسازید و از کنترل TextBox ارث بری کنید ، توی اون کلاس تمام خصوصیاتی که مد نظرتون هست رو پیاده سازی بفرمائید و منبعد از اون کلاس به جای تکست باکس استاندارد استفاده کنید.

behrooz69
دوشنبه 03 دی 1397, 11:49 صبح
سلام
یک کلاس بسازید و از کنترل TextBox ارث بری کنید ، توی اون کلاس تمام خصوصیاتی که مد نظرتون هست رو پیاده سازی بفرمائید و منبعد از اون کلاس به جای تکست باکس استاندارد استفاده کنید.

مثل همون کلاس تکس باکس کنترل ؟؟؟ که خودتون برام گذاشته بودین برای کنترل همه تکس باکس های فرم درسته ؟؟

از اون روش استفاده کردم ، دو تا تعریف کردم ، یکیش برای ورود فقط عدد تو تکس باکس و یکیش برای ورود فقط حروف توی تکس باکس .

کم کم دارم کامپاننت هایی که استفاده کردم رو حذف میکنم و سعی میکنم یاد بگیرم با کد نویسی به خواستم برسم

behrooz69
دوشنبه 03 دی 1397, 11:51 صبح
سلام
یک کلاس بسازید و از کنترل TextBox ارث بری کنید ، توی اون کلاس تمام خصوصیاتی که مد نظرتون هست رو پیاده سازی بفرمائید و منبعد از اون کلاس به جای تکست باکس استاندارد استفاده کنید.


برای جدا کردن 3 رقم 3 رقم مثل ریال چیکار کنیم ؟؟ ، ظاهرا تو کامپاننت ها وقتی به حالت تبدیل ریال میبریمش ، یعنی فعال شه ، درست کار میکنه سه رقم جدا میکنه ، حروفیشو مینویسه واسم ،

یه مشکلی این وسط هست ، اینه که جمعشونو درست نمیزنه ، و فقط سه رقم اول رو توی محاسباتش میاره .

hamidrezax1
جمعه 07 دی 1397, 16:40 عصر
دوست عزیز توی محاسبات از Replace استفاده کن و , رو حذف کن
موفق باشی

a_mohammadi_m
یک شنبه 30 دی 1397, 19:33 عصر
سلام
با استفاده از Regular Expressions کار خیلی راحتتره

مثلا برای محدود کردن به اعداد

'********************************************

Imports System.Text.RegularExpressions

'********************************************

Private Sub txtYourTextBox_TextChanged(sender As Object, e As EventArgs) Handles txtYourTextBox.TextChanged
Dim digitsOnly As Regex = New Regex("[^\d]")
sender.Text = digitsOnly.Replace(sender.Text, "")
End Sub

یا مثلا چک کردن صحت آدرس ایمیل وارد شده

Function EmailAddressCheck(ByVal emailAddress As String) As Boolean

Dim pattern As String = "^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$"
'Dim pattern As String = "\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
Dim emailAddressMatch As Match = Regex.Match(emailAddress, pattern)
If emailAddressMatch.Success Then
EmailAddressCheck = True
Else
EmailAddressCheck = False
End If

End Function



ولی به روش شما برای حروف
Private Sub TextBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox.KeyPress
If Not Char.IsLetter(e.KeyChar) Then e.Handled = True 'ignore everything but letter keys
End Sub