Вам потребуется TypeConverter для преобразования между строковым представлением типа, как показано в окне «Свойства», и типом. Вы очень неопределенны в своем вопросе, поэтому я просто найду ответ. Хорошим кандидатом является класс TypeListConverter, он уже выполняет тяжелую работу. Вам просто нужно получить свой собственный и вызвать базовый конструктор со списком типов, которые вы принимаете:
public partial class UserControl1 : UserControl {
public UserControl1() {
InitializeComponent();
}
[TypeConverter(typeof(myTypeTypeConverter))]
public Type Type { get; set; }
private class myTypeTypeConverter : TypeListConverter {
private static Type[] types = new Type[] { typeof(int), typeof(string), typeof(long) };
public myTypeTypeConverter() : base(types) {}
}
}
После того, как вы опустите этот элемент управления в форме, вы можете использовать поле со списком для свойства Тип и выбрать один из трех типов. Если это не подходит, вам придется создать свой собственный TypeConverter. Используйте Reflector, чтобы взглянуть на TypeListConverter. Это не очень большой.