How add attribute with enum to control?

How do I add an attribute to a custom control that takes an enum as its argument.  For example (in psuedo code):

[SetProperty1(SomeClass.Enum3)]
class MyControl() : Control
{
  MyControl(){
    int attributeValue = passedInEnumValue;}
}

I'd like to do this for web and winform controls.
brettrAsked:
Who is Participating?
 
anarki_jimbelConnect With a Mentor Commented:
Hmmm... Don't think there is anatrribute you need. Still, you may try to create a custom one:
http://aspalliance.com/778_Attributes_and_Reflection_in_C

I'd choose another way...
0
 
anarki_jimbelCommented:
Shouldn't be a problem. See my example for a very primitive control. After I build a solution I can drag the control from the toolbox onto my form. In the properties window I can see the property MyCustomProperty and all enumm members in a dropdown list.

    public class MyEnums
    {
 
        public enum Enum1
        {
            Enum1Item1, 
            Enum1Item2,
            Enum1Item3 
        }
    }
 
===================================
 
        public MyUserControl()
        {
            InitializeComponent();
            this.BorderStyle = BorderStyle.FixedSingle;
            this.BackColor = System.Drawing.Color.Red;
        }
 
 
        private MyEnums.Enum1 _customProp;
        public MyEnums.Enum1 CustomProperty
        {
            get { return _customProp; }
            set { _customProp = value; }
        }
    }

Open in new window

0
 
anarki_jimbelCommented:
if this is not what you want - explain what do you need this attribute for?
0
 
brettrAuthor Commented:
I need an attribute because a designer will rarely be used.

I want to provide the control with a role.  It will then decide to show/hide based on the user being in that role.
0
 
brettrAuthor Commented:
Yes - that's a bit involved just for an attribute.

I could overload the constructor and pass in the role value, since the control may not use roles in some cases.  But if it does, the call will supply it via a constructor.  Is there a better way for this?
0
All Courses

From novice to tech pro — start learning today.