gpt4 book ai didi

c# - 寻找一种在 PropertyGrid 中动态更改字段名称的方法

转载 作者:行者123 更新时间:2023-11-30 22:15:10 25 4
gpt4 key购买 nike

我已将 COM 对象附加到属性网格。

Type typeObj = Type.GetTypeFromProgID(progIdService);
var obj = Activator.CreateInstance(typeObj);
propertyGrid1.SelectedObject = obj;

现在我需要一些方法来使用一些翻译器将对象字段翻译成我的语言。我试图在对象周围使用包装器,但对于 COM 对象我没有 PropertyInfo,我只有 PropertyDescription 所以我仍在寻找所有可能的变体。

最佳答案

您可以做的是重用我在此处对这个问题的回答中描述的 DynamicTypeDescriptor 类:PropertyGrid Browsable not found for entity framework created property, how to find it?

像这样:

DynamicTypeDescriptor dtp = new DynamicTypeDescriptor(typeObj);

// get current property definition and remove it
var current = dtp.Properties["ThePropertyToChange"];
dtp.RemoveProperty("ThePropertyToChange");

// add a new one, but change its display name
DynamicTypeDescriptor.DynamicProperty prop = new DynamicTypeDescriptor.DynamicProperty(dtp, current, obj);
prop.SetDisplayName("MyNewPropertyName");
dtp.AddProperty(prop);

propertyGrid1.SelectedObject = dtp.FromComponent(obj);

关于c# - 寻找一种在 PropertyGrid 中动态更改字段名称的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18118630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com