You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

179 lines
3.4 KiB
C#

namespace PropertyGridEx
{
using System;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
[Serializable()]public class CustomChoices : ArrayList
{
public CustomChoices(ArrayList array, bool IsSorted)
{
this.AddRange(array);
if (IsSorted)
{
this.Sort();
}
}
public CustomChoices(ArrayList array)
{
this.AddRange(array);
}
public CustomChoices(string[] array, bool IsSorted)
{
this.AddRange(array);
if (IsSorted)
{
this.Sort();
}
}
public CustomChoices(string[] array)
{
this.AddRange(array);
}
public CustomChoices(int[] array, bool IsSorted)
{
this.AddRange(array);
if (IsSorted)
{
this.Sort();
}
}
public CustomChoices(int[] array)
{
this.AddRange(array);
}
public CustomChoices(double[] array, bool IsSorted)
{
this.AddRange(array);
if (IsSorted)
{
this.Sort();
}
}
public CustomChoices(double[] array)
{
this.AddRange(array);
}
public CustomChoices(object[] array, bool IsSorted)
{
this.AddRange(array);
if (IsSorted)
{
this.Sort();
}
}
public CustomChoices(object[] array)
{
this.AddRange(array);
}
public ArrayList Items
{
get
{
return this;
}
}
public class CustomChoicesTypeConverter : TypeConverter
{
private CustomChoicesAttributeList oChoices = null;
public override bool GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext context)
{
bool returnValue;
CustomChoicesAttributeList Choices = (CustomChoicesAttributeList) context.PropertyDescriptor.Attributes[typeof(CustomChoicesAttributeList)];
if (oChoices != null)
{
return true;
}
if (Choices != null)
{
oChoices = Choices;
returnValue = true;
}
else
{
returnValue = false;
}
return returnValue;
}
public override bool GetStandardValuesExclusive(System.ComponentModel.ITypeDescriptorContext context)
{
bool returnValue;
CustomChoicesAttributeList Choices = (CustomChoicesAttributeList) context.PropertyDescriptor.Attributes[typeof(CustomChoicesAttributeList)];
if (oChoices != null)
{
return true;
}
if (Choices != null)
{
oChoices = Choices;
returnValue = true;
}
else
{
returnValue = false;
}
return returnValue;
}
public override System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(System.ComponentModel.ITypeDescriptorContext context)
{
CustomChoicesAttributeList Choices = (CustomChoices.CustomChoicesAttributeList) context.PropertyDescriptor.Attributes[typeof(CustomChoicesAttributeList)];
if (oChoices != null)
{
return oChoices.Values;
}
return base.GetStandardValues(context);
}
}
public class CustomChoicesAttributeList : Attribute
{
private ArrayList oList = new ArrayList();
public ArrayList Item
{
get
{
return this.oList;
}
}
public TypeConverter.StandardValuesCollection Values
{
get
{
return new TypeConverter.StandardValuesCollection(this.oList);
}
}
public CustomChoicesAttributeList(string[] List)
{
oList.AddRange(List);
}
public CustomChoicesAttributeList(ArrayList List)
{
oList.AddRange(List);
}
public CustomChoicesAttributeList(ListBox.ObjectCollection List)
{
oList.AddRange(List);
}
}
}
}