PDA

View Full Version : سوال: رديف كردن تكست باكس بوسيله چك باكس



nemesis2005
سه شنبه 01 مرداد 1387, 21:56 عصر
من به كدي نيلز دارم كه بتونه بر اساس تيك خوردن چك باكس بتونه تكست باكس هارو رديف كنه !
بطور مثال 5 چك باكس داريم به نام هاي check1 ,check2,check3,check4,check5 و در مقابل 5 تكست باكس داريم
به نام هاي text1,text2,text3,text4,text5
من مي خوام اگه مثلا چك باكس 3 و 5 تيك خوردن text3 از طرف راست بياد اول قرار بگيره و درست بعدش text5 بياد كنارش قرار بگيره !

نمي دونم متوجه ميشين يا نه ؟

koruir
چهارشنبه 02 مرداد 1387, 00:00 صبح
دوست عزيز اين کاري که شما ميخواين انجام بدين عملي هست اما يکم دردسر داره.
من به شما پيشنهاد ميکنم که اطلاعات داخل هر TextBox رو به طور جداگانه داخل يک Variable يا متغيير قرار بدين. و فقط جاي محتويات رو عوض کنين.
اما کاري که شما ميخواهيد انجام بديد؛ با کد زير جواب ميگيريد:
(البته اين کد براي عوض کردن مکان يک تکست باکس هست)


Private Sub Command1_Click()
دادن مقدار ثابت
Text1.Left = 50

در هر بار اجرا به طرف چپ میرود
Text1.Left = Text1.Left - 10

همچنین میتوانید از کد زیر هم استفاده کنین
Text1.Top = 50
End Sub

و التبه ميتونين براي مخفي کردن TextBox از ديد User از کد زير استفاده کنين:
هر کدوم رو جداگانه تست کن ببين چي ميشه.


Text1.Visible = False
Text1.Enabled = False
Text1.Locked = False

nemesis2005
چهارشنبه 02 مرداد 1387, 00:10 صبح
دوست عزيز اين کاري که شما ميخواين انجام بدين عملي هست اما يکم دردسر داره.
من به شما پيشنهاد ميکنم که اطلاعات داخل هر TextBox رو به طور جداگانه داخل يک Variable يا متغيير قرار بدين. و فقط جاي محتويات رو عوض کنين.
اما کاري که شما ميخواهيد انجام بديد؛ با کد زير جواب ميگيريد:
(البته اين کد براي عوض کردن مکان يک تکست باکس هست)


Private Sub Command1_Click()
دادن مقدار ثابت
Text1.Left = 50

در هر بار اجرا به طرف چپ میرود
Text1.Left = Text1.Left - 10

همچنین میتوانید از کد زیر هم استفاده کنین
Text1.Top = 50
End Sub

و التبه ميتونين براي مخفي کردن TextBox از ديد User از کد زير استفاده کنين:
هر کدوم رو جداگانه تست کن ببين چي ميشه.


Text1.Visible = False
Text1.Enabled = False
Text1.Locked = False

من مي خوام اين كارها با Checkbox انجام بشه !
راستشو بخواين من اينو براي Active report مي خوام !
مي خوام فقط فيلد هاي انتخابي تو رپورت نمايش داده بشه !
مثلا اگه 5 تا فيلد دارم و كاربر فيلد هاي 2و4و5 رو انتخاب كرد تو رپورت فقط فيلد هاي 2و4و5 و بترتيب كنار هم نمايش بده !

koruir
چهارشنبه 02 مرداد 1387, 00:46 صبح
خيله خوب دوست عزيز چيزي که ميخواستي آماده هست.
برات يک پروژ آپلود کردم که هموني هست که ميخواي.

http://barnamenevis.org/forum/attachment.php?attachmentid=20836&stc=1&d=1238143374

nemesis2005
چهارشنبه 02 مرداد 1387, 02:00 صبح
از بابت كد ممنونم ولي مشكلش اينه كه بار اول مثل عكسي كه گذاشتي درست سورت مي كنه ولي بار دوم اگه Checkbox هارو تغيير بدي ديگه عمل نميكنه !

nemesis2005
چهارشنبه 02 مرداد 1387, 02:08 صبح
من مشكلش رو حل كردم !
كد رو به اين صورت تغيير دادم !


Private Sub Command1_Click()
If Check1.Value = 0 Then Text1.Visible = False
If Check2.Value = 0 Then Text2.Visible = False
If Check3.Value = 0 Then Text3.Visible = False
If Check4.Value = 0 Then Text4.Visible = False
If Check5.Value = 0 Then Text5.Visible = False

Dim lngTop As Long
lngTop = 200

If Check1.Value = 1 Then
Text1.Top = lngTop
Text1.Visible = True
lngTop = lngTop + Text1.Height + 25
End If

If Check2.Value = 1 Then
Text2.Visible = True
Text2.Top = lngTop
lngTop = lngTop + Text2.Height + 25
End If

If Check3.Value = 1 Then
Text3.Visible = True
Text3.Top = lngTop
lngTop = lngTop + Text3.Height + 25
End If

If Check4.Value = 1 Then
Text4.Visible = True
Text4.Top = lngTop
lngTop = lngTop + Text4.Height + 25
End If

If Check5.Value = 1 Then
Text5.Visible = True
Text5.Top = lngTop
lngTop = lngTop + Text5.Height + 25
End If

End Sub

koruir
چهارشنبه 02 مرداد 1387, 11:15 صبح
از بابت كد ممنونم ولي مشكلش اينه كه بار اول مثل عكسي كه گذاشتي درست سورت مي كنه ولي بار دوم اگه Checkbox هارو تغيير بدي ديگه عمل نميكنه !

دوست عزيز؛ من اين کد رو براي شما نوشتم که کاري رو که ميخواين براتون انجام بده. اما شما برنامه نويس هستين و داراي خلاقيت. با کمي فکر ميفهمين که با يک کد ساده ميشه برنامه رو درست کرد. شما هربار که لازم داشته باشين دوباره اون عمل رو انجام بدين؛ خاصيت Visible تمام TextBoxها رو برابر True قرار بدين. و بعدش همون کدي که من نوشتم رو اجرا کنين.

شما فقط کافي هست که کد زير را به ابتداي کد قبلي اضافه کنيد:


Text1.Visible = True
Text2.Visible = True
Text3.Visible = True
Text4.Visible = True
Text5.Visible = True

اميدوارم که مشکلتون حل شده باشه.