کنترل RadioButton

کنترل RadioButton دکمه‌ای است که دارای دو حالت خاموش و روشن می‌باشد. دکمه‌ی Radio یک دکمه‌ی دایره‌ای شکل به همراه یک برچسب است. شما با کلیک کردن بر روی دکمه‌ی Radio می‌توانید آنرا از حالت خاموش به روشن و یا بالعکس، تغییر دهید. وقتی که یک دکمه‌ی Radio روشن باشد، یک نقطه در وسط آن قرار می‌گیرد، و زمانی که خاموش باشد، دایره‌ی آن خالی است.

دکمه‌های Radio معمولاً زمانی استفاده می‌شوند که یک کاربر می‌بایست از بین چند گزینه یکی از آنها را انتخاب کند. برای مثال، زمانی که شما بخواهید جنسیت کاربر را مشخص کنید، می‌توانید از دو دکمه‌ی Radio با نام‌های مرد و زن استفاده کنید. وقتی که شما از دکمه‌های Radio استفاده کردید، فقط می‌توانید یکی از آن دو را انتخاب کنید. در جدول زیر برخی از خواص کنترل Radio را مشاهده می‌کنید.

خاصیت توضیح
Appearance دکمه‌ی Radio می‌تواند همانند یک دکمه‌ی معمولی و یا یک دکمه‌ی دایره‌ای همراه با یک برچسب در کنار آن نمایش داده شود.
CheckAlign نوع چینش دکمه را مشخص می‌کند. حالت پیشفرض MiddleLeft است، که دکمه را در سمت برچسب آن نمایش می‌دهد.
Checked وقتی که مقدار آن برابر با True باشد دکمه‌ی Radio روشن می‌شود و یک نقطه در وسط دکمه‌ی آن نمایش داده می‌شود.
Text متن برچسب دکمه را مشخص می‌کند.

دکمه‌ی Radio یک رویداد CheckChanged و Click دارد. رویداد CheckChanged زمانی رخ می‌دهد که، حالت دکمه تغییر پیدا کند. برای مثال وقتی که حالت دکمه‌ی Radio از خاموش به روشن تغییر کند، رویداد CheckChanged اجرا می‌شود.
رویداد Click زمانی رخ می‌دهد که بر روی دکمه Radio کلیک شود. به طور پیش فرض اگر بر روی دکمه Radio کلیک کنید، حالت آن تغییر می‌کند، که باعث می‌شود رویداد CheckChanged اجرا شود. تفاوت بین رویداد Click و CheckChanged زمانی اتفاق می افتد که شما این حالت پیش فرض را تغییر دهید. در اینجا یک خاصیت در کنترل Radio به نام AutoCheck وجود دارد که اگر مقدار آن را به False تغییر کند، کلیک کردن بر روی دکمه‌ی Radio دیگر حالت آن را تغییر نمی‌دهد، اما باعث می‌شود که رویداد Click اتفاق بیافتد.

شما می‌توانید به صورت دستی مقدار خاصیت Checked دکمه‌ی Radio را True قرار دهید. رویداد پیشفرض برای دکمه‌ی Radio رویداد CheckChanged است، بنابراین، دابل کلیک کردن بر روی این کنترل در حالت طراحی یک Event Handler برای رویداد گفته شده، درست می‌کند. مثال زیر کاربرد دکمه‌ی Radio را شرح می‌دهد. دو عدد دکمه‌ی Radio را بر روی فرم قرار دهید. نام آنها را radioButtonYes و radioButtonNo بگذارید. یک کنترل Button را نیز بسازید و نام آنرا buttonShow قرار دهید و مقدار خاصیت Text آنرا برابر Show Choice قرار دهید.
radio-button-control-12-20-10-01
بر روی buttonShow دوبار کلیک کنید تا یک handler برای رویداد Click آن ساخته شود. کدهای روبرو را در قسمت کد آن وارد کنید.

private void buttonShow_Click(object sender, EventArgs e)
{
    if (radioButtonYes.Checked)
        MessageBox.Show("You choosed yes!");
    else
        MessageBox.Show("You choosed no!");
}

وقتی که شما بر روی buttonShow کلیک می‌کنید، برنامه تعیین می‌کند که کدام Radio انتخاب شده است. شما می‌توانید این کار را به وسیله‌ی خاصیت Checked انجام دهید. ما از یک عبارت شرطی if، برای تعیین اینکه Radio انتخاب شده است یا خیر استفاده می‌کنیم. اگر آن انتخاب نشده باشد، پس دکمه‌ی Radio ی دیگر انتخاب شده است. چون ما فقط دو دکمه‌ی Radio بر روی فرم دارم و نهایتاً یکی از آنها انتخاب می‌شود.