PropertyGrid是微软提供的一个非常智能化的控件,能够把对象的属性自动显示出来并能让用户修改。
并且在VS.net2005中,已经支持中文变量名,但是很多时候这还不够,某些时候我们需要把值也汉化。否则属性控件中的属性名称是中文了,而属性值还是英文的!
此时我们可以使用TypeConverter.
下面的例子把Person类的成年属性布尔值汉化:
using System.ComponentModel;
class BoolValueConverter: TypeConverter
{
private bool[] values;
private string[] names;
BoolValueConverter()
{
values = new bool[2] { true, false };
}
public override bool GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext context)
{
return true;
}
public override StandardValuesCollection GetStandardValues(System.ComponentModel.ITypeDescriptorContext context)
{
return new StandardValuesCollection(values);
}
public override bool CanConvertFrom(System.ComponentModel.ITypeDescriptorContext context, Type sourceType)
{
if (sourceType == typeof(string))
return true;
else
return base.CanConvertFrom(context, sourceType);
}
public override object ConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType)
{
if ( destinationType== typeof(string))
{
if ((bool)value == true)
return "是";
else
return "否";
}
return base.ConvertTo(context, culture, value, destinationType);
}
public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value)
{
if (value.GetType() == typeof(string))
{
if ((string)value == "是")
return true;
else
return false;
}
return base.ConvertFrom(context, culture, value);
}
}
classPerson {
private bool m_bAdault;
[TypeConverter(typeof(BoolValueConverter))]
public bool 成年
{
get
{
return m_bAdault;
}
set
{
m_bAdault = value;
}
}
}
则属性"成年"在属性控件中的布尔值会被汉化!
试一下在窗体上放一个propertygrid, 把SelectedObject设置成new Person()即可看到效果!
分享到:
相关推荐
这样,`MyProperty`属性在`PropertyGrid`中就会显示一个下拉菜单,用户可以选择列表中的值。 在提供的压缩包文件"PrgCtl"中,可能包含了实现上述功能的源代码和示例。为了正确运行和理解这些代码,你需要打开并编译...
在.NET框架中,`PropertyGrid`控件是一个强大的工具,用于显示和编辑对象的属性。这个控件在设计时和运行时都非常有用,因为它能够自动生成一个用户界面,该界面可以展示任何对象的属性,并允许用户进行交互式编辑。...
c#winfrom PropertyGrid 运行时变更属性项 关于PropertyGrid相关参见:http://www.cnblogs.com/mywebname/archive/2007/11/15/959732.html
4. 编辑器支持:PropertyGrid控件可以自动选择合适的编辑器来显示和编辑属性值。例如,字符串属性通常用文本框,布尔属性用复选框,数值属性用滑块或数字输入框等。 5. 特殊属性标记:通过使用Attribute类,如...
在Windows Forms(WinForm)开发中,`propertyGrid`控件是一个非常实用的工具,它允许用户以类似于Visual Studio(VS)设计器的方式查看和编辑对象的属性。`propertyGrid`提供了一个直观、易于使用的界面,使得应用...
在.NET框架中,`PropertyGrid`控件是一个强大的工具,用于显示和编辑对象的属性。它通常用于创建用户界面,使用户能够查看和修改对象的属性。本篇将深入探讨如何在C#中使用`PropertyGrid`动态加载自定义属性,以实现...
在.NET框架中,`PropertyGrid`控件是一个强大的工具,用于显示和编辑对象的属性。它通常用于创建用户界面,使用户能够查看和修改对象的属性值。在C#编程中,`PropertyGrid`控件提供了简洁的方式来进行数据绑定和...
`PropertyGrid`使用`TypeConverter`来转换属性值的显示和存储格式。我们可以创建自定义的`TypeConverter`类,覆盖其`ConvertTo`和`ConvertFrom`方法,以便控制如何显示和解析特定类型的属性。 2. **属性编辑器...
描述中的“PropertyGrid 联动 自定义下拉框”进一步说明了我们需要自定义`PropertyGrid`的显示方式,特别是用下拉框来呈现属性值。这通常通过创建自定义类型转换器(`TypeConverter`)或者属性编辑器(`UITypeEditor...
在开发用户界面时,`PropertyGrid`控件是一个非常实用的工具,它能够自动显示对象的公共属性、方法和事件,使得用户可以方便地查看和修改这些成员的值。本教程将深入探讨如何在`PropertyGrid`控件中自定义属性的显示...
在本文中,我们将讨论如何在 .NET 中使用 PropertyGrid 控件来显示下拉列表,并实现编辑表的各种属性。我们将通过一个自定义控件 CheckedListBoxUC 来实现这个功能。 PropertyGrid 控件是 .NET 中一个功能非常强大...
在C#编程中,`PropertyGrid`控件是一种强大的工具,用于显示和编辑对象的属性。它通常用于创建用户友好的界面,使用户能够查看和修改对象的属性值。本教程将详细介绍如何在不使用属性绑定的情况下,手动动态地向`...
在Windows Presentation Foundation(WPF)中,`PropertyGrid`是一个非常有用的控件,它允许开发者以网格的形式展示和编辑对象的属性。这个控件通常用于创建用户友好的配置界面或编辑器,使得用户可以直观地修改对象...
在.NET框架中,`PropertyGrid`控件是一个强大的工具,用于在运行时或设计时展示对象的属性,并允许用户交互式地修改这些属性。它在Windows Forms开发中尤其常见,帮助开发者快速创建用户友好的配置界面。下面我们将...
在.NET框架中,`PropertyGrid`控件是一个强大的工具,用于显示和编辑对象的属性。它主要用于GUI应用程序,提供了一种交互式的用户界面,让用户能够查看和修改对象的属性。本项目“动态设定PropertyGrid属性源码”...
在Windows Forms(Winform)开发中,`PropertyGrid`控件是一个非常实用的工具,它允许用户以图形化的方式查看和编辑对象的属性。在某些场景下,我们可能需要为`PropertyGrid`添加自定义的功能,例如展示下拉列表框...
在.NET框架中,`PropertyGrid`控件是一个强大的工具,用于可视化地展示对象的属性,通常用于设置对话框或配置界面。然而,默认情况下,当枚举类型被`PropertyGrid`显示时,它只会显示枚举的命名常量,而不是用户友好...
在.NET框架中,`PropertyGrid`控件是一个强大的工具,用于在Windows Forms应用程序中显示和编辑对象的属性。它提供了一种用户友好的界面,使开发者可以轻松地创建具有属性浏览器功能的应用。在这个主题中,我们将...