GenderRadioList.cs --------------------- using System.Web.UI.WebControls; using DarkBulletin.Components; using System.Web.UI; namespace DarkBulletin.Controls { /// /// GenderRadioList so that the user can select their gender /// /// /// Custom control for Gender selection based on RadioButtonList. /// Which also uses the Gender enum /// [ToolboxData( "<{0}:GenderRadioList ID=\"GenderList\" RepeatColumns=\"3\" runat=\"server\" />" )] public sealed class GenderRadioList : RadioButtonList { /// /// GenderRadioList default constructor /// /// /// Using Items.Add() creates the Gender /// public GenderRadioList( ) { Items.Add( new ListItem( "Not Set", ( (int)GenderFlags.NotSet ).ToString( ) ) ); Items.Add( new ListItem( "Male", ( (int)GenderFlags.Male ).ToString( ) ) ); Items.Add( new ListItem( "Female", ( (int)GenderFlags.Female ).ToString( ) ) ); } /// /// Gets the users SelectedValue based on the users selection /// public new int SelectedValue { get { return int.Parse( base.SelectedValue ); } set { base.SelectedValue = ( (int)value ).ToString( ); } } /// /// Gets the controls ID /// public new string ID { get { return base.ID; } set { base.ID = value.ToString( ); } } /// /// Gets the number of how many times to repeat the columns /// public new int RepeatColumns { get { return base.RepeatColumns; } set { base.RepeatColumns = value; } } } } GenderFlags.cs --------------- namespace DarkBulletin.Components { public enum GenderFlags : int { NotSet = 0, Male, Female } }