ايران ويج

نسخه‌ی کامل: يه سوال ساده
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلا م


برنامه اي داريم 100 تا PICTURE BOX داخل آن هست و يك تكست باكس و يك كوماند

ميخواهيم نام پيكچر باكس را در تكست باكس بنويسيم و دكمه كاماند را فشار دهيم سپس رنگ آن پيكچر باكس داده شده در تكست باكس قرمز شود


آيا لازم است كه 100 دستور شرطي بنويسيم ؟ يا راه راهت تري وجود دارد؟
تو دستور شرطي كه مي نويسي اين قرار داد را
بزار كه وقتي تو تكست؛ اسم پيكچر باكس رو مي نويسه
اون پيكچر باكس قرمز بشه

کد:
If Text1.Text = "PictureBox1" Then
    Picture1.BackColor = vbRed
End If
Iron_Fist :!:
-----------------
براي index هر كودوم از پيكچر باكس ها يه مقدار تعريف كن و بعد توي رويداد كليك دكمه اينو بزار :
کد:
Picture1(CInt(Text1.Text)).BackColor = vbRed
فقط يادت باشه كه اسم پيكچر باكس ها بايد يكي باشه ( يعني مثلا اسم همشون Picture1 باشه ولي index هاشون فرق داشته باشه . مثلا تو تكست باكس مينويسي : 2 ، پيكچر باكسي كه ايندكسش 2 ، فرمز ميشه. )
نقل قول: ميخواهيم نام پيكچر باكس را در تكست باكس بنويسيم
من اينو نوشتم چون گفته بود اسم پيكچر باكسها رو تو تكست بنويسه
و نمي خواست كه شماره براي ايندكس پيكچر باكس بنويسه تو تكست

بيا حالا اگه خيلي دوست داري كه حتما اسم پيكچر باكس رو بدي
من با اجازه امير جان كدش رو دستكاري كردم كه مي توني ازش استفاده كني

کد:
Picture1(CInt(Right(Text1.Text, 1))).BackColor = vbRed
مي توني از
for each
استفاده كني.
مثلا :

کد:
Private Sub Command1_Click()
On Error Resume Next
Dim s As PictureBox
For Each s In Form1
If s.Name = Text1.Text Then s.BackColor = vbred
Next
End Sub
]