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#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|