PDA

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



samiasoft
پنج شنبه 09 مرداد 1393, 15:40 عصر
سلام دوستان

من دو تا تکست باکس Text1 و Text2 دارم بطوری که اینها ایندکس گذاری شده اند.

میخواستم در حالت کلی یه بار همشون رو بررسی کنه که ایا مقادیر تکست باکس Text1 با مقادیر متناظر Text2 برابر هست یا نه.

اگر همشون برابر بودند رنگ کلیه تکست باکس ها مثلا سبز بشه و اگر با همشون با هم برابر نبوند قرمز بشه
برای همین دستور زیر رو نوشتم


For a = 1 To Text1.UBound
If Text1(a).Text = Text2(a).Text Then
Text1(a).BackColor = vbGreen
else
Text1(a).BackColor = vbRed
End If
Next


اما این دستور انگار درست نیست و گاهی عمل نمیکنه
مخصوصا در بررسی تکست باکس اخری

ممنون میشم در این مورد راهنمایی کنید.

hmbarnamenevis
پنج شنبه 09 مرداد 1393, 19:09 عصر
دستور شما هیچ مشکلی ندارد؛ فقط Index ها از صفر شروع می شوند و باید عدد 1 در حلقه را 0 بگذارید. اگر شما خوددتان در طراحی صفر را یک گذاشتید باید بقیه ی Text ها را هم درست کنید چون اگر Index صفر وجود نداشته باشد با کپی و پیست کردن Text جدید، Index آن صفر خواهد شد. پس مطمئنا مشکل شما در طراحی است.

samiasoft
جمعه 10 مرداد 1393, 14:24 عصر
نه مشکل ایندکس نیستش

پروژمو ضمیمه کردم...اگر ممکنه یه نگاهی کنین


درحالت عادی اگر مقدار داخل خونه های بالا با پایینی برابر باشه خب با زدن کامند تکست باکس میبنم سبزمیشه و پیکچرباکس ظاهر میشه تا اینجا درسته.

اما وقتی دو تا خونه پر بشه و دو تای دیگری پرنباشه با زدن کامند میبنم که بازم پیکچرباکس ظاهر میشه!!!!! خب مشکل من اینه ....یعنی من میخوام در صورتی پیگچر باکسم ظاهر بشه که مقادیر 4 تا تکست باکس بالایی با پاینی با برابر بوده باشه.

Mori Bone
جمعه 10 مرداد 1393, 15:00 عصر
Dim same As Integer
For a = 0 To Text1.UBound
If Text1(a).Text = Text2(a).Text Then
same = same + 1
End If
Next
If same = Text1.Count Then
Picture1.Visible = True
For a = 0 To Text1.UBound
Text1(a).BackColor = vbGreen
Next
Else
Picture1.Visible = False
For a = 0 To Text1.UBound
Text1(a).BackColor = vbRed
Next
End If

samiasoft
جمعه 10 مرداد 1393, 15:24 عصر
ممنون اما بازم دارای اشکال است این رو ببنین

http://www.samisoft.ir/1/images/YegB.jpg

الان خونه های اول و سوم و چهارم باید سبز میشدن چون مقادیرشون با پاینی برابره و فقط دومی قرمز میموند!!!

Mori Bone
جمعه 10 مرداد 1393, 15:31 عصر
آهان من فکر کردم اگه همش مساوی بودن بعد همشون سبز بشن.
خوب چه موقع اون کنترل کادر تصویر نمایش پیدا کنه؟

Dim same As Integer
For a = 0 To Text1.UBound
If Text1(a).Text = Text2(a).Text Then
Text1(a).BackColor = vbGreen
same = same + 1
Else
Text1(a).BackColor = vbRed
End If
Next
If same = Text1.Count Then
Picture1.Visible = True
Else
Picture1.Visible = False
End If

samiasoft
جمعه 10 مرداد 1393, 15:38 عصر
آهان من فکر کردم اگه همش مساوی بودن بعد همشون سبز بشن.
خوب چه موقع اون کنترل کادر تصویر نمایش پیدا کنه؟

فک کنم این اخرین کدی که نوشتین درست هست

وقتی میخواستم کادر تصویر ظاهر بشه که کلیه تکست باکس های بالایی مقادیرشون یکی یکی با پایینیا برابر باشه
ممنون ازت