templatetypeconverter.cs
来自「全功能c#编译器」· CS 代码 · 共 82 行
CS
82 行
/*
* Created by SharpDevelop.
* User: Omnibrain
* Date: 16.03.2004
* Time: 12:28
*
* To change this template use Tools | Options | File Templates.
*/
using System;
using System.Collections;
using System.ComponentModel;
using System.Globalization;
using System.Resources;
using System.Reflection;
using System.Drawing;
using System.Drawing.Design;
using ICSharpCode.SharpDevelop.Internal.Templates;
namespace ICSharpCode.SharpDevelop.Gui.Components
{
public class CustomTypeConverter : TypeConverter
{
TemplateType templateType;
public CustomTypeConverter(TemplateType templateType)
{
this.templateType = templateType;
}
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return sourceType == typeof(string);
}
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
{
return destinationType == typeof(string);
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true;
}
public override System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(System.ComponentModel.ITypeDescriptorContext context)
{
// Passes the local integer array.
ArrayList values = new ArrayList();
foreach (DictionaryEntry entry in templateType.Pairs) {
values.Add(entry.Key);
}
StandardValuesCollection svc = new StandardValuesCollection(values);
return svc;
}
// Overrides the ConvertFrom method of TypeConverter.
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
if (templateType.Pairs[value] != null) {
return templateType.Pairs[value];
}
return value.ToString();
}
// Overrides the ConvertTo method of TypeConverter.
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
{
foreach (DictionaryEntry entry in templateType.Pairs) {
if (entry.Value.ToString() == value.ToString()) {
return entry.Key;
}
}
return value.ToString();
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?