`
yuanlanxiaup
  • 浏览: 896423 次
文章分类
社区版块
存档分类
最新评论

PropertyGrid属性值的汉化

 
阅读更多

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()即可看到效果!

分享到:
评论

相关推荐

    c# propertyGrid 属性显示为中文,支持下拉菜单选择文本

    这样,`MyProperty`属性在`PropertyGrid`中就会显示一个下拉菜单,用户可以选择列表中的值。 在提供的压缩包文件"PrgCtl"中,可能包含了实现上述功能的源代码和示例。为了正确运行和理解这些代码,你需要打开并编译...

    propertyGrid 属性处理演示demo

    在.NET框架中,`PropertyGrid`控件是一个强大的工具,用于显示和编辑对象的属性。这个控件在设计时和运行时都非常有用,因为它能够自动生成一个用户界面,该界面可以展示任何对象的属性,并允许用户进行交互式编辑。...

    c#PropertyGrid 运行时变更属性项

    c#winfrom PropertyGrid 运行时变更属性项 关于PropertyGrid相关参见:http://www.cnblogs.com/mywebname/archive/2007/11/15/959732.html

    PropertyGrid属性控件

    4. 编辑器支持:PropertyGrid控件可以自动选择合适的编辑器来显示和编辑属性值。例如,字符串属性通常用文本框,布尔属性用复选框,数值属性用滑块或数字输入框等。 5. 特殊属性标记:通过使用Attribute类,如...

    WinForm属性编辑 propertyGrid示例 仿window

    在Windows Forms(WinForm)开发中,`propertyGrid`控件是一个非常实用的工具,它允许用户以类似于Visual Studio(VS)设计器的方式查看和编辑对象的属性。`propertyGrid`提供了一个直观、易于使用的界面,使得应用...

    propertyGrid动态加载自定义属性

    在.NET框架中,`PropertyGrid`控件是一个强大的工具,用于显示和编辑对象的属性。它通常用于创建用户界面,使用户能够查看和修改对象的属性。本篇将深入探讨如何在C#中使用`PropertyGrid`动态加载自定义属性,以实现...

    给propertyGrid动态添加属性

    在.NET框架中,`PropertyGrid`控件是一个强大的工具,用于显示和编辑对象的属性。它通常用于创建用户界面,使用户能够查看和修改对象的属性值。在C#编程中,`PropertyGrid`控件提供了简洁的方式来进行数据绑定和...

    一个关于C# PropertyGrid增加自定义属性的范例。

    `PropertyGrid`使用`TypeConverter`来转换属性值的显示和存储格式。我们可以创建自定义的`TypeConverter`类,覆盖其`ConvertTo`和`ConvertFrom`方法,以便控制如何显示和解析特定类型的属性。 2. **属性编辑器...

    PropertyGrid 二级联动

    描述中的“PropertyGrid 联动 自定义下拉框”进一步说明了我们需要自定义`PropertyGrid`的显示方式,特别是用下拉框来呈现属性值。这通常通过创建自定义类型转换器(`TypeConverter`)或者属性编辑器(`UITypeEditor...

    C# 自定义属性在propertyGrid控件中显示 演示demo

    在开发用户界面时,`PropertyGrid`控件是一个非常实用的工具,它能够自动显示对象的公共属性、方法和事件,使得用户可以方便地查看和修改这些成员的值。本教程将深入探讨如何在`PropertyGrid`控件中自定义属性的显示...

    .net C# PropertyGrid 显示下拉列表

    在本文中,我们将讨论如何在 .NET 中使用 PropertyGrid 控件来显示下拉列表,并实现编辑表的各种属性。我们将通过一个自定义控件 CheckedListBoxUC 来实现这个功能。 PropertyGrid 控件是 .NET 中一个功能非常强大...

    手动动态添加 PropertyGrid 的数据行并显示 C# (非属性绑定方式)

    在C#编程中,`PropertyGrid`控件是一种强大的工具,用于显示和编辑对象的属性。它通常用于创建用户友好的界面,使用户能够查看和修改对象的属性值。本教程将详细介绍如何在不使用属性绑定的情况下,手动动态地向`...

    WPF PropertyGrid的资料合集

    在Windows Presentation Foundation(WPF)中,`PropertyGrid`是一个非常有用的控件,它允许开发者以网格的形式展示和编辑对象的属性。这个控件通常用于创建用户友好的配置界面或编辑器,使得用户可以直观地修改对象...

    PropertyGrid的三种使用方法

    在.NET框架中,`PropertyGrid`控件是一个强大的工具,用于在运行时或设计时展示对象的属性,并允许用户交互式地修改这些属性。它在Windows Forms开发中尤其常见,帮助开发者快速创建用户友好的配置界面。下面我们将...

    动态设定PropertyGrid 属性源码

    在.NET框架中,`PropertyGrid`控件是一个强大的工具,用于显示和编辑对象的属性。它主要用于GUI应用程序,提供了一种交互式的用户界面,让用户能够查看和修改对象的属性。本项目“动态设定PropertyGrid属性源码”...

    Winform 属性编辑器 propertyGrid示例 下拉列表框

    在Windows Forms(Winform)开发中,`PropertyGrid`控件是一个非常实用的工具,它允许用户以图形化的方式查看和编辑对象的属性。在某些场景下,我们可能需要为`PropertyGrid`添加自定义的功能,例如展示下拉列表框...

    PropertyGrid中的枚举显示为中文

    在.NET框架中,`PropertyGrid`控件是一个强大的工具,用于可视化地展示对象的属性,通常用于设置对话框或配置界面。然而,默认情况下,当枚举类型被`PropertyGrid`显示时,它只会显示枚举的命名常量,而不是用户友好...

    PropertyGrid 下拉式和弹出编辑框的实现

    在.NET框架中,`PropertyGrid`控件是一个强大的工具,用于在Windows Forms应用程序中显示和编辑对象的属性。它提供了一种用户友好的界面,使开发者可以轻松地创建具有属性浏览器功能的应用。在这个主题中,我们将...

Global site tag (gtag.js) - Google Analytics