PropertyGrid属性值的汉化

实现.NET中PropertyGrid控件中文属性名显示指南 实现PropertyGrid中文属性名显示的关键在于自定义属性描述符(Attribute)。这涉及到.NET中的反射(Reflection)机制,以及属性描述符的工作原理。在下一章节中,我们将详细讨论如何创建自定义属性描述符类,并展示如何将这些描述符应用到对象上,最终让PropertyGrid以中文显示属性名。// 示例代码:创建一个自定义属性描述符类// 实现从资源文件中加载翻译后的属性名// 覆写DisplayName属性的获取方法get// 返回本地化的属性名。 阅读详情

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

    class Person    {
        private bool m_bAdault;
        
        [TypeConverter(typeof(BoolValueConverter))]
        public bool 成年
        {
            get
            {
                return m_bAdault;
            }
            set
            {
                m_bAdault = value;
            }
        }
    }

则属性"成年"在属性控件中的布尔值会被汉化!

试一下在窗体上放一个propertygrid, 把SelectedObject设置成 new Person()即可看到效果!

C#DEV 控件汉化包 汉化DevExpress中的控件 使英语不好人看的更明白 立即下载

相关推荐

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

源代码,含例程。 加上代码中特性,就可以显示成中文,支持下拉菜单选择文本

运行时自定义PropertyGrid显示属性项目

运行时自定义PropertyGrid显示属性项目 简述 在PropertyGrid所显示的属性内容包括属性分类(Category)及组件属性, 在一般情况下直接使用PropertyGrid来显示一个对象的所有属性是非常方便的,只需一个语句就能完成: propertyGrid.SelectedObject = component; 但在实际应用中可能会不需要显示所有属性项目,而是通过...

weixin_30731305的博客 326

.Net对象属性名在PropertyGrid 中显示中文

在.Net中,对象属性名若是英文,在PropertyGrid 中显示为中文。文件源代码中有两种方法。参考了一些网上的代码。

C# Winform PropertyGrid显示中文

主要原理是在枚举上添加DescriptionAttribute属性,然后通过反射将其显示出来。方法1:继承StringConverter类。方法2:自定义界面显示。

那人那事的博客 759

为Codex添加任务完成提示音:提升开发效率的实用技巧

在自动化脚本开发和模型训练过程中,实时获取任务状态反馈是提升工作效率的关键。通过Hook机制,开发者可以在代码执行的关键节点注入自定义逻辑,实现各种自动化操作。Codex的Hook系统特别适合用于任务完成提醒,其post_execution节点能准确捕获执行结束事件。技术实现上,只需简单配置TOML文件并编写音频播放脚本,就能让系统在任务完成时自动播放提示音。这种声音反馈机制尤其适用于长时间运行的批量任务和模型训练场景,实测可提升30%以上的工作效率。结合动态音效选择和跨平台兼容方案,该技巧还能扩展为桌面通

weixin_26767391的博客 540

LVGL开发新选择:深度对比NXP GUI Guider与SquareLine Studio,免费版够用吗?

本文深度对比了LVGL开发中两款主流工具NXP GUI Guider与SquareLine Studio的核心差异,包括功能定位、设计能力、代码生成质量和硬件适配等方面。针对不同项目需求,分析了免费版工具的适用性,帮助开发者根据预算和功能需求做出明智选择。特别关注了GUI设计工具在嵌入式开发中的实际应用效果。

weixin_26976635的博客 430

C#基础系列:开发自己的窗体设计器(PropertyGrid显示中文属性名)

既然是一个窗体设计器,那就应该能够设置控件的属性,设置属性最好的当然是PropertyGrid了,我们仅仅需要使用一个PropertyGrid.SelectedObject = Control就可以搞定,让PropertyGrid显示Control的所有属性。可是这里显示的属性名是英文的。对于我们开发人员来说这无可厚非,我们也乐于接受。并且让PropertyGrid显示中文属性名,这对于我们开发人

nic_911的专栏 1212

使用TBtools进行物种间共线性分析

Sequence Toolkit ---Fasta Tools ----ID Prefix (fasta文件)

sunny_dayone的博客 8752

C# PropertyGrid 演练一

今天因为学习需要第一次用了.NET中的PropertyGrid控件,感觉这个控件的功能挺不错,很适合浏览或者设置一个特定对象的属性。这有点类似于VS中的Property View,太有用了。下面就具体说一下怎么用吧。 首先写一个和PropertyGrid绑定的类,设置一些属性,这些属性就是待会要在PropertyGrid中显示的内容。为了简单起见,我就写一个一般的类吧 using System

Demin7926的专栏 972

ThingsBoard3.9.1规则引擎方式发送钉钉通知消息

thingsboard3.9.1/4.0规则链方式发送钉钉通知消息。

hssjf的专栏 531

在Ubuntu上安装Node.js编程

在Ubuntu操作系统上安装Node.js是非常简单的,本文将为您提供详细的安装步骤。这是一个简单的Node.js HTTP服务器示例,它将在本地主机的端口3000上监听请求,并返回"Hello, World!npm是Node.js的包管理器,您可以使用它来安装和管理Node.js模块。您已成功在Ubuntu上安装了Node.js,并创建并运行了一个简单的Node.js应用程序。现在,您已经成功安装了Node.js和npm,让我们创建一个简单的Node.js应用程序并运行它。如有任何疑问,请随时提问。

CodeNexus的博客 3524

C#Winform使用按键和下拉框切换中英文语言状态

使用c#语言在winform中使用按键和下拉框切换中英文

weixin_46078387的博客 2481

OpenClaw赚钱实录:从“养龙虾“到可持续变现的实践指南

OpenClaw已经开源3个月有余,作为深耕AI Agent领域的博主,我亲身探索了各种基于OpenClaw的赚钱方法,也踩过坑、付出了时间与精力。现在,我将这些真金白银砸出来的实战经验,毫无保留地总结成这个专栏,分享给不想从零开始摸索的你。博主在优快云已有7万+粉丝和1100万+阅读量,但这却是我的第一个付费专栏。正因如此,我比任何人都更珍惜这个“第一次”。我会像一个手艺人打磨作品一样,死磕每一篇文章的质量,并持续根据订阅者的反馈优化内容。也许你的疑问就是当篇文章的优化点。

冯·诺依曼 2442

jquery easyui根据需求进行二次开发

运用easyui进行开发时新添加的个性化功能和对部分easyui自身bug的修复,由于easyui的半开源,有些还是有难度的,记录下来方便日后需要时查阅。 1、tree需要显示多个图标 实际需求:设备树上节点需搁三个图片,分别标识运行状态、告警状态、设备类型 解决方法:给tree的iconCls传入一个数组,分别是各状态下的class(css),然后要改动easyui关于tree节...

weixin_30376163的博客 187

Carla中如何渲染opendrive车道线和车道标识(全网独家,附代码)

carla是可以单独加载opendrive并渲染路面的,但是无法把车道线渲染出来,这是一个大坑,因为没有车道线就无法给感知输入。楼主已经实现,直接渲染车道线或者带PBR贴图的车道标识。实现起来非常简单,但必须对carla源码以及ue的开发足够了解。在carla源码中有一个很重要的类opendrivegenerator,它是关于opendrive渲染的全部方法,但是你是找不到它实例化的地方的,因为它被定义在蓝图关卡中。网上包括carla官方关于carla源码的分析少之又少,楼主将自己的经验写出来供大家参考。

u013998156的博客 1090

《QGIS快速入门与应用基础》294:双地图框布局(真彩色+假彩色对比)

摘要 本文详细介绍了在QGIS中创建专业级遥感影像对比地图的完整流程。作者作为时空智能领域专家,重点讲解了双地图框布局的实现方法,通过真彩色与假彩色影像的同步对比,满足学术研究和工程应用需求。文章包含三个核心部分:1) 前期准备工作,包括图层复制、标准化命名和参数校验;2) 布局创建与页面设置,详细说明了A4横向布局的参数配置;3) 双地图框同步技术,提供了复制粘贴法和手动设置两种实现方案。教程特别强调图层锁定、比例尺固定等关键操作,确保对比图的专业性和准确性,适合GIS从业人员和遥感研究者学习参考。

LuckyHanMo的博客 359

DevExpress控件汉化详解(WebForm)

所有Developer Express .NET产品都有本地化资源,比如按钮属性,控件属性描述,菜单项,确认和错误的信息等等,所有这些资源字符串可以很容易地被翻译成各种语言。   先看下面汉化前后的图片: 汉化前 汉化后 如何实现上述的汉化呢?Dev汉化总结下来一般分三种形式:一种是利用已经汉化好的资源包;一种是使用本地对象类,利用代码汉化;还有就是资源包和代...

weixin_30449453的博客 1221

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

c#——Winform PropertyGrid使用

最近被迫调到某部,协助一个配置工具的开发。 做winform的开发,这些控件yiji相关的知识还是在学校上课的时候学到的。工作之后,没有接触相关的开发。 使用的是SCSF框架,控件使用winform自带控件。但是界面功能要求比较复杂。 一开始上手,还是有些困难,同时也有些排斥。但是一想自己这么痛苦,其实就是自己的基础不扎实。慢慢的放松了对自己的要求。 任何事情,做就做好。不得不做的时候,就

世界中心的专栏 7034

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

PropertyGrid中使用中文名称的超简单方法。

方法很简单,一句话搞定。就是定义中文属性。因为C#支持中文,所以我定义个中文属性就可以了。呵呵。

cpsoft的专栏 2013

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

XtraGrid控件汉化(C#)

首先应该在程序前面加上using DevExpress.XtraGrid.Localization; 然后自己写一个类如下(我只汉化了我需要的部分,还有很多都没写,要汉化其他的只要找到对应的属性然后返回相应的字符串即可) public class ChzLocalizer :DevExpress.XtraGrid.Localization.GridLocalizer {              

點煙 2493

PropertyGrid 用法(汉化属性)

有的朋友,肯定用到了PropertyGrid中要将一个对像的属性给汉化过来,以合适咱们中国人的习惯.其实这个汉化,ms是支持的:请瞧下面的代码,你只需要copy,然后做为你的对像的父类,然后在你的对像的属性上加入中文意思,就搞定了。一切都那么简单:#region 所有要放在PropertyGird中的对像的基类. public class BaseObject : ICustomTypeDescr

拿弹工打你们破玻璃(郝德青) 1573
上一篇: 对于VC制作安装程序什么工具比较好
下一篇: Form窗体的KeyPreview属性的妙用(.NET C#)
海之子99
博客等级 码龄21年 53粉丝 147原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值