PDA

View Full Version : سوال: مشکل با radiobutton



reyhaneh-sh
شنبه 30 شهریور 1387, 22:57 عصر
سلام
دوستان من یک فرم دارم که ناچارا دارای چهار لیست باکس است واسه جلوگیری از شلوغ شدن ص یکی از اونا را تبدیل به 9 تا radiobutton کردم و همه را توی یک گروپ باکس قرار دادام
و واسه انتخاب اونا 9 تا شرط if گذاشتم
ولی برنامه ام فقط سه تا از این شرطا را میشناسه و روی اونا عمل میکنه
آیا تعداد زیاد این radiobutton داره مشکل ایجاد میکنه ؟

esmartiz_red
شنبه 30 شهریور 1387, 23:10 عصر
دوست من توکتاب های آموزش برنامه نویسی بارها و بارها ذکر شده از if در صورت کم بودن شرط ها استفاده کنید و اگه تعداد شرط ها رفت بالای 3 تا برید سراغ switch
از switch استفاده کن درضمن استفاده از 9 تا radiobutton فرمت رو شلوغ تر نمی کنه تا استفاده از یه listbox اضافه

reyhaneh-sh
شنبه 30 شهریور 1387, 23:19 عصر
دوست عزیز من سوییچ را روی کدوم گزینه باید بذارم ؟ اینو نمیدنم؟؟
آخه هر radiobuttoni یک اسم داره یه چیزه کلی نیست که بشه سوییچ کرد
میتونم روی گزینه انتخاب شده گروپ باکس بذارم ؟ دستورش چیه ؟
من مجبورم لیست باکسمو بردارم چون دستور رییس اداره است که فرم به این شکل باشه

esmartiz_red
شنبه 30 شهریور 1387, 23:32 عصر
یه کمکی صبر کن یه نمونه کد کوچیک برات بذارم

jaza_sa
شنبه 30 شهریور 1387, 23:29 عصر
دوست من توکتاب های آموزش برنامه نویسی بارها و بارها ذکر شده از if در صورت کم بودن شرط ها استفاده کنید و اگه تعداد شرط ها رفت بالای 3 تا برید سراغ switch
از switch استفاده کن درضمن استفاده از 9 تا radiobutton فرمت رو شلوغ تر نمی کنه تا استفاده از یه listbox اضافه

دوست عزیز ، برای این میگن از if های تو در تو استفاده نکنید ، چون خوانایی کد رو کم میکنه
و به هیچ وجه ، هیچ مشکلی در اجرای if های تو در توی زیاد نیست ، اگر دوستمون در اجرای آنها مشکل دارند ، بهتره کد رو بزارن تا ببینیم مشکل کدشون چیه

اما در مورد استفاده از switch در این حالت
میتونید ابتدا یک enum تعریف کنید و شرط رو روی آنها قرار بدید

esmartiz_red
یک شنبه 31 شهریور 1387, 00:14 صبح
خوب دوست عزیز منم منظورم همین بود نگفتم نمی شه از if استفاده کرد گفتم اگر شرط ها از 3 تا بیشتر شد برو سراغ switch یا من منظورم خودمو خوب نرسوندم یا شما بد متوجه شدین
من معذرت می خوام

SMRAH1
یک شنبه 31 شهریور 1387, 00:20 صبح
اول : امان از اظهار نظر غیر کارشناسی بعضی ها (بخصوص اگر رئیس ها باشند!!!)
دوم : بعد از طراحی دکمه های رادیویی،تمام رویداد های مورد نظر اونها رو (مثلا CheckedChanged) به یک تابع ببر و بعد در اون تابع یک switch روی نام ( Name) یا متن (Text) مربوط به Sender ببند تا بتونی تشخیص بدی کدام کنترل در حال ارسال رویداد است.برای نمونه کد پایین (و برنامه اون رو) براتون گذاشتم:



switch (((Control)sender).Text)
{
case "A":
label1.Text = " 1 ";
break;
case "B":
label1.Text = " 2 ";
break;
case "C":
label1.Text = " 3 ";
break;
case "D":
label1.Text = " 4 ";
break;
}
موفق باشید