PDA

View Full Version : ورود ناقص کاراکترهای در تکس باکس



مهدی د
چهارشنبه 13 دی 1391, 17:59 عصر
موقعی که کاراکترهای وارد شده توسط کاربر ناقص باشد. با چه کدی می توان از ذخیره شدن متن داخل تکس باکس جلوگیری کرد.

ghayour
چهارشنبه 13 دی 1391, 18:08 عصر
منظورتون اینه که مثلا شماره تلفن که 7 رقمه، 6 رقم وارد شده باشه؟!:متفکر:
معمولا با دستورهای شرطی میشه از ذخیره شدن جلوگیری کرد.

مهدی د
چهارشنبه 13 دی 1391, 18:21 عصر
بله منظورم همینه که فرمودید اگه می شه کدش رو بزارین. و اینکه در چه رویدادی باید این کد را قرار بدهیم.

ghayour
چهارشنبه 13 دی 1391, 18:35 عصر
مثلا در همین شماره تلفنی که گفتم اول از همه توی خاصیت MaxLength عدد 7 رو قرار میدی به این منظور که از 7 رقم بیشتر نشه.
و در رویداد کلیک دکمه ذخیره دستور شرطی if رو مینویسی که اگر طول رشته برابر 7 بود آنگاه ذخیره بشه در غیر این صورت [اگر خواستید] پیغامی نمایش داده بشه که این فیلد رو درست وارد نکرده.

مهدی د
چهارشنبه 13 دی 1391, 18:41 عصر
چگونه می توان قبل از اینکه کاربر از تکس باکس خارج شود جلوی این کار گرفته شود.

ghayour
چهارشنبه 13 دی 1391, 18:54 عصر
کافیه شرط رو در رویداد LostFocus تکست باکس قرار بدی.

مهدی د
چهارشنبه 13 دی 1391, 19:00 عصر
شرطی که گذاشته می شود چگونه باید باشد تا زمانی که کاربر اصلاح لازم را در تکس باکس نداده نتواند از آن خارج شود.

ghayour
چهارشنبه 13 دی 1391, 19:07 عصر
با focus کردن تکست باکس(TextBox1.Focus) اونو مجبور میکنی که در تسکت باکس بمونه.

gilsoft
پنج شنبه 14 دی 1391, 00:48 صبح
موقعی که کاراکترهای وارد شده توسط کاربر ناقص باشد. با چه کدی می توان از ذخیره شدن متن داخل تکس باکس جلوگیری کرد.

سلام دوست عزیز :

این روش اول :
Private Sub ButnSave_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
If TextBox1.Text.Trim <> "متن مورد نظر" Then
MessageBox.Show("Wrong !")
TextBox1.Focus()
End If
'
' Save Codes
'
End Sub


شرطی که گذاشته می شود چگونه باید باشد تا زمانی که کاربر اصلاح لازم را در تکس باکس نداده نتواند از آن خارج شود.

اینم جواب این سوال :
Private Sub TextBox1_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
If TextBox1.Text.Trim <> "متن مورد نظر" Then
My.Computer.Audio.PlaySystemSound(Media.SystemSoun ds.Asterisk)
e.Cancel = True
End If
End Sub

موفق باشید ...

ghayour
پنج شنبه 14 دی 1391, 13:51 عصر
این کدی که شما نوشتید(کد دوم) باید حتما متنی که داخل تکست باکس مینویسه مانند متن داخل کد باشد و همچنین این کد حتی از بستن فرم هم جلو گیری می کند.
مثال برای همون شماره تلفن:
Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus
If (TextBox1.TextLength <> 7) Then
' اخطار مورد نظر
TextBox1.Focus() ' کد مجبور کردن کاربر به ماندن در این تکست باکس
End If
End Sub

در روش اول هم متن باید دقیقا مانند متن داخل کد باشد که منظور "مهدی د" این نبوده. همچنین کدهای ذخیره باید در Else قرار گیرد تا هربار ذخیره نشه.
مثال باز هم برای شماره تلفن:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If TextBox1.TextLength <> 7 Then
MessageBox.Show("Wrong!") ' اخطار مورد نظر
TextBox1.Focus()
Else
'
' Save Codes
'
End If
End Sub

مهدی د
یک شنبه 17 دی 1391, 16:37 عصر
كدي كه در رويداد TextBox1_Validating نوشته مي شه يك مشكل داره و اون اينكه اين رويداد در صورتي كه كاربر در داخل تكس باكس كليك بكنه و بعد خارج بشه (‌بدون اينكه تغييري بده) نيز فعال مي شه آيا رويداد ديگه اي نيست كه فقط در صورت ايجاد تغيير فعال بشه؟

ghayour
یک شنبه 17 دی 1391, 17:07 عصر
میتونی یک متغیر عمومی با مقدار اولیه False ایجاد کنی و اون متغیر رو در TextChanged برابر True کنی.
حالا در LostFocus شرط بذاری که اگه اون متغیر برابر true بود اون موقع دستورها اجرا بشه.
Public Class Form1
Dim a As Boolean = False

Private Sub TextBox2_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.LostFocus
If (TextBox2.TextLength <> 7 And a = True) Then
' اخطار مورد نظر
TextBox2.Focus() ' کد مجبور کردن کاربر به ماندن در این تکست باکس
End If
End Sub
Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
a = True
End Sub
End Class