PDA

View Full Version : اشاره به خاصیت Checked در چک باکس به طور غیر مستقیم



seniamail
دوشنبه 18 آذر 1387, 10:05 صبح
سلام
چطور میشه به خاصیت Checked در چک باکس به طور غیر مستقیم اشاره کرد؟
من نمیخوام از این کد استفاده کنم : checkBox1.Checked
من یک متغییر از نوع Control تعریف کرده ام ولی خاصیت Checked را ندارد Control ctrl

sinpin
دوشنبه 18 آذر 1387, 10:27 صبح
سلام
چطور میشه به خاصیت Checked در چک باکس به طور غیر مستقیم اشاره کرد؟
من نمیخوام از این کد استفاده کنم : checkBox1.Checked
من یک متغییر از نوع Control تعریف کرده ام ولی خاصیت Checked را ندارد Control ctrl

بصورت غیرمستقیم یعنی چی ؟
خاصیت Checked مربوط به کلاس CheckBox است و نه Control

seniamail
دوشنبه 18 آذر 1387, 10:37 صبح
من میخوام از foreach استفاده کنم که ممکن است یکسری از کنترلها Textbox و یکسری CheckBox باشند

shask00l
دوشنبه 18 آذر 1387, 13:24 عصر
خوب دوست عزیز داخل حلقه مربوطه type کنترل رو چک کن
اینو ببین :


for each v as control in me.controls
if v.gettype is checkbox.gettype then msgbox("check")
next

البته این کد رو همین جا نوشتم . ممکنه مجبور بشی تغییرش بدی . ضمنا برای چک کردن نوع از عملگر typeOf هم میتونی استفاده کنی . 1 سرچ بزن در این زمینه تاپیک های زیادی هست .

sinpin
دوشنبه 18 آذر 1387, 15:21 عصر
من میخوام از foreach استفاده کنم که ممکن است یکسری از کنترلها Textbox و یکسری CheckBox باشند
درون حلقه هرجا حس کردید کنترل جاری از نوع checkBox است اون رو به CheckBox تبدیل کنید (Down casting) تا به خواصش دسترسی داشته باشید...

seniamail
سه شنبه 19 آذر 1387, 09:07 صبح
درون حلقه هرجا حس کردید کنترل جاری از نوع checkBox است اون رو به CheckBox تبدیل کنید (Down casting) تا به خواصش دسترسی داشته باشید...

چطور میتونم اینکار را انجام بدم؟

shask00l
سه شنبه 19 آذر 1387, 12:37 عصر
چطور میتونم اینکار را انجام بدم؟
دوست عزیز . به کد بالا توجه کنید . هرجا که شرط برقرار بود میتونید از v به عنوان checkbox استفاده کنید .
مثلا:


if v.gettype is checkbox.gettype then
if v.checked = true then msgbox("checked")
end if

RED-C0DE
سه شنبه 19 آذر 1387, 14:30 عصر
شاید با قطعه کد vb مشکل دارین...در هر صورت نمونه این کار در #C به اینصورت انجام میشه :
به عملگرهای is و as توجه کنید...





foreach (Control con in this.Controls)
{
if (con is CheckBox)
(con as CheckBox).Checked = true;