PDA

View Full Version : مبتدی: تکه کد انتخاب دو چک باکس



marjan_gh
شنبه 29 آذر 1393, 16:35 عصر
با سلام
من یه تیکه کد میخوام از بین چند تا چک باکس کاربر فقط بتونه دوتا رو انتخاب کنه یعنی اگه خواست سومی رو انتخاب کنه همه غیر فعال باشن !
نمیدونم تونستم درست مشکلمو بیان کنم یا نه

gilsoft
شنبه 29 آذر 1393, 22:23 عصر
با سلام
من یه تیکه کد میخوام از بین چند تا چک باکس کاربر فقط بتونه دوتا رو انتخاب کنه یعنی اگه خواست سومی رو انتخاب کنه همه غیر فعال باشن !
نمیدونم تونستم درست مشکلمو بیان کنم یا نه

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

ابتدا یک Panel به فرم اضافه کن .. بعد در داخل Panel به تعداد دلخواه CheckBox اضافه کن و از کد زیر استفاده کن

Public Class Form2


Dim NC As Byte = 0


Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
For Each chk As CheckBox In Panel1.Controls
AddHandler chk.Click, AddressOf Mgr_Click
Next
End Sub


Private Sub Mgr_Click(sender As System.Object, e As System.EventArgs)
Dim chk As CheckBox = DirectCast(sender, CheckBox)
If chk.Checked Then NC += 1 Else NC -= 1
If NC > 2 Then Exit Sub
If NC = 2 Then
For Each chkDis As CheckBox In Panel1.Controls
If chkDis.Checked = False Then
chkDis.Enabled = False
End If
Next
End If
If NC < 2 Then
For Each chkEna As CheckBox In Panel1.Controls
chkEna.Enabled = True
Next
End If
End Sub
End Class


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

marjan_gh
شنبه 29 آذر 1393, 23:01 عصر
اگه زحمت نمیشه منطقش رو توضیح میدین؟

gilsoft
یک شنبه 30 آذر 1393, 00:08 صبح
اگه زحمت نمیشه منطقش رو توضیح میدین؟

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

راستش من شاید نتونم توضیح واضحی برای شما بدم ( مدت 24 ساله که برنامه‌نویسی می‌کنم .. اما یه برنامه‌نویس تجربی هستم .. «متاسفانه تحصیلات کلاسیک ندارم» :خجالت: :خجالت: :خجالت: )

متغیر NC یه شمارنده‌ست که تعداد CheckBoxهای چک خورده رو نگه میداره ( سطر 4 )

سطر 8 تا 10 رویداد Click تمامی CheckBoxها رو به پروسیجر Mgr_Click هدایت می‌کنه ....

سطر 15 CheckBox کلیک شده رو شناسایی می‌کنه ....

با کلیک روی هر CheckBox به متغیر NC عدد 1 اضافه/کم میشه ... ( سطر 16 ) ( در صورت تیک خوردن اضافه ... و در غیر اینصورت از متغیر کم میشه )

اگه متغیر NC بزرگتر از 2 شد .. از روتین خارج میشه ( سطر 17 ) ( یعنی هیچ عکس‌العملی انجام نمیده )

اگه برابر با 2 شد . تمامی CheckBoxهایی که تیک نخورده‌اند رو Disable می‌کنه .... ( سطر 18 تا 24 )

و اگه کوچکتر از 2 شد .. تمام CheckBoxها رو Enable می‌کنه ... ( سطر 25 تا 29 )

امیدوارم که تونسته باشم درست توضیح بدم ....

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