PDA

View Full Version : ارور خالی بودن تکست باکس



Mahdi-v
سه شنبه 20 اسفند 1392, 15:42 عصر
اساتید محترم سلام
دوستان یه پروژه دارم می خوام یه نرم افزاری بنویسم که بیادجمله ی n ام یه دنباله رو به ما بده
سه تا تکست باکس گذاشتم به نام های a1 و n و d
حالا کار نداریم من میخوام به یه باتن دستور بدم که اگه تکست باکس یک بزرگتر 100 بود این فرمول رو توی این لیبل انجام بده
حالا چی کار کنم که اگه كاربر هیچی وارد نکرد و باتن رو زد عملی انجام نده ؟ ارور نده ؟ یا مثلا یه رشته وارد کرد عملی انجام نده من اینطوری مینویسم :

If TextBox1.Text > -300 Then
Label5.Text = "1"
Else
MsgBox("A1 ra vared konid")
اما نمیشه اگه وارد نکنی عددی و باتن بزنی این ارور رو میده
Conversion from string "" to type 'Double' is not valid.
امیدوارم منظورم منتقل شده باشه میخوام تنها در صورت وارد کردن عدد نرم افزار عمل کنه

AbbasVB
سه شنبه 20 اسفند 1392, 16:50 عصر
سلام
باید به این صورت استفاده کنید
If val(TextBox1.Text) > -300 Then

Mahdi-v
سه شنبه 20 اسفند 1392, 20:12 عصر
استاد دمت گرم بابت جواب من همینو توی رویداد کلیک باتن نوشتم بازم در صورت وارد شدن یک تکست یا بدون وارد شدن هیچی اگه باتن رو بزنی ارور میده :
There is no source code available for the current location

لطفا کمک کنید دستتون درد نکنه

setroyd
چهارشنبه 21 اسفند 1392, 07:24 صبح
If Text1.Text = vbNullString Then Exit Sub


شما این رو در بالاترین خط کد قرار بدی کاری انجام نمیشه

Mahdi-v
چهارشنبه 21 اسفند 1392, 13:10 عصر
ممنون الان کد رو اینطوری وارد کردم (تو ویژوال استودیو 2008 مینویسما)
If TextBox1.Text = vbNullString Then Exit Sub
If Val(TextBox1.Text) > -300 Then
Label5.Text = "1"
Else
MsgBox("A1 ra vared konid")
End Sub


الان در صورت وارد نکردن و زدن باتن هیچ اروری نمیاد ولی اگه رشته یا حروف وارد کنی باتن رو بزنی ارور میده
There is no source code available for the current location

Mahdi-v
چهارشنبه 21 اسفند 1392, 15:54 عصر
دوستان اصلا فرض کنید سه تا تکست باکس دارم میخوام فقط در صورت وارد شدن عدد نرم افزار عمل کنه
اصلا آیا میشه وارد کردن حروف رو درون تکست باکس ممنوع کرد ؟ که اصلا ننویسه ؟

gorg313
چهارشنبه 21 اسفند 1392, 18:18 عصر
دوستان اصلا فرض کنید سه تا تکست باکس دارم میخوام فقط در صورت وارد شدن عدد نرم افزار عمل کنه
اصلا آیا میشه وارد کردن حروف رو درون تکست باکس ممنوع کرد ؟ که اصلا ننویسه ؟

سلام - پاسخ ها مشکلي نداشتن - اسم کنترل هاتون را هم بهتره چک کنيد - text1 يا textbox1

دوست عزيز شما بهتره از کد زير در ابتدا کدهاتون استفاده کنيد

از اساتيد معذرت ميخوام:متفکر:



on error resume next

If TextBox1.Text = vbNullString Then Exit Sub
If Val(TextBox1.Text) > -300 Then
Label5.Text = "1"
Else
MsgBox("A1 ra vared konid")
End Sub

Mahdi-v
پنج شنبه 22 اسفند 1392, 12:39 عصر
دوست عزیز دمت گرم ولی استاد من سه تا تکست باکس دارم این کد ها رو اضاف می کنم در صورتی که دو تا رو استیرینگ وارد کنه هیچ اروری نمیاد اما اگه هر سه رو رشته وارد کنه و باتن رو بزنه ارور میده ویژوال استودیو
دوستان کلا این 5 خط کد می خواد یکی طف کنه یه پروژه ی خیلی ساده بنویسه که :
سه تا تکست باکس داشته باشه : اگه
هر سه تا تکست باکس عددی بالای 10 داشتن مسیج باکس بده سلام
اگه حتی یکی هم خالی بود و بقیه عددی بیشتر از 10 کاری نکنه
دو تا تکست باکس خالی بود بازم عملی انجام نشه
سه تکست باکس هم خالی بود بازم کاری انجام نشه
و اگه هر سه تا حروف وارد شده بود هیچ کاری نشه
دو تا تکست باکسا حروف بود بازم کاری انجام نشه
یکی هم حروف بود کاری انجام نشه
کلا اگه سه تا تکست باکس عدد بودنعملیات انجام شه
شش روزه تو همین بموندم اینو بگید دمتون گرم کارم راه میفته یه پروژه بسازید ضمیمه کنید :قلب::قلب::قلب::قلب::قلب::قلب:: لب::ناراحت::گریه::عصبانی++:

محمد آشتیانی
پنج شنبه 22 اسفند 1392, 13:03 عصر
سلام
توی رویداد KeyPress تکست باکس ها اینو بنویس (برای همشون)



If IsNumeric(e.KeyChar) Or Asc(e.KeyChar) = 8 Then
e.Handled = False
Else
e.Handled = True
End If



این باعث میشه فقط بتونی عدد وارد کنی ، برای چک کردن خالی نبودن تکست باکس ها هم اینو تو رویداد کلیک Button بنویس و کدای خودتو تو بلوک If بنویس
فرض کردم اسم تکست باکس ها TextBox1 , TextBox2 , TextBox3 هست


If Val(TextBox1.Text) > 0 And Val(TextBox2.Text) > 0 And Val(TextBox3.Text) > 0 Then


End If


موفق باشید

Mahdi-v
پنج شنبه 22 اسفند 1392, 16:27 عصر
استاد دمت گرم
منظورمو بالاخره یکی متوجه شد
من کد رو این طوری نوشتم


Private Sub Text1_KeyPress(KeyAscii As Integer)
If IsNumeric(e.KeyChar) Or Asc(e.KeyChar) = 8 Then
e.Handled = False
Else
e.Handled = True
End If
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
If IsNumeric(e.KeyChar) Or Asc(e.KeyChar) = 8 Then
e.Handled = False
Else
e.Handled = True
End If
End Sub


Private Sub Text3_KeyPress(KeyAscii As Integer)
If IsNumeric(e.KeyChar) Or Asc(e.KeyChar) = 8 Then
e.Handled = False
Else
e.Handled = True
End If
End Sub
واسه رویداد کی پرس هر کدوم اینو قرار دادم الان همین که می خوام یه چیزی تایپ کنم توی تکست باکس :
run-time eror '42'
object required
اصلا واقعا دیگه خیلی عجیبه :عصبانی++::عصبانی++::عصبانی++:: ریه::گریه::گریه::گریه::متعجب:
استاد شما که برات کار نداره لطف کن یه پروژه ی ساده با وی بی 6.0 بنویس این جا آپ کن واقعا ممنون میشم :بوس::بوس::بوس::بوس::بوس::بوس:: وس::بوس::بوس:

Mahdi-v
پنج شنبه 22 اسفند 1392, 16:30 عصر
ای وای تازه فهمیدم چه اشتباهی کردم
تاپیک زدم توی وی بی دات نت پروژه ی من وی بی هستش :خجالت::عصبانی:
به هر حال اگه بلدید واقعا ممنون میشم

Mahdi-v
پنج شنبه 22 اسفند 1392, 17:05 عصر
دوستان عزیزم واقعا ممنون که کمکم کردید به نتیجه برسم فهیمیدم باید توی کی پرس اینو نوشت
Private Sub Text3_KeyPress(KeyAscii As Integer)
Dim StrValid As String
StrValid = "0123456789"
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If KeyAscii > 26 Then
If InStr(StrValid, Chr(KeyAscii)) = 0 Then
KeyAscii = 0
End If
End If
If KeyAscii = 13 Then
End If
End Sub:تشویق: