返回顶部
首页 > 资讯 > 精选 >propertygrid多个对象怎么显示
  • 570
分享到

propertygrid多个对象怎么显示

propertygrid 2023-09-22 05:09:58 570人浏览 独家记忆
摘要

在PropertyGrid中显示多个对象可以通过两种方式实现:1. 使用属性类别:- 创建一个父对象,其中包含多个子对象。- 给每个

在PropertyGrid中显示多个对象可以通过两种方式实现:
1. 使用属性类别:
- 创建一个父对象,其中包含多个子对象。
- 给每个子对象添加一个属性类别,以便在PropertyGrid中显示不同的分组。
- 在PropertyGrid中设置SelectedObject属性为父对象。
示例代码如下:
```csharp
public class ParentObject
{
[CateGory("Group 1")]
public string Property1 { get; set; }
[Category("Group 1")]
public int Property2 { get; set; }
[Category("Group 2")]
public bool Property3 { get; set; }
}
ParentObject parentObject = new ParentObject();
propertyGrid1.SelectedObject = parentObject;
```
2. 使用属性描述器:
- 创建一个自定义的属性描述器类,继承自ICustomTypeDescriptor接口,并实现相关方法。
- 在GetProperties方法中,返回包含多个对象属性的PropertyDescriptorCollection。
- 将实例化的属性描述器对象设置为PropertyGrid的SelectedObject属性。
示例代码如下:
```csharp
public class CustomTypeDescriptor : ICustomTypeDescriptor
{
private List objects;
public CustomTypeDescriptor(List objects)
{
this.objects = objects;
}
public AttributeCollection GetAttributes()
{
return TypeDescriptor.GetAttributes(this, true);
}
public string GetClassName()
{
return TypeDescriptor.GetClassName(this, true);
}
public string GetComponentName()
{
return TypeDescriptor.GetComponentName(this, true);
}
public TypeConverter GetConverter()
{
return TypeDescriptor.GetConverter(this, true);
}
public EventDescriptor GetDefaultEvent()
{
return TypeDescriptor.GetDefaultEvent(this, true);
}
public PropertyDescriptor GetDefaultProperty()
{
return TypeDescriptor.GetDefaultProperty(this, true);
}
public object GetEditor(Type editorBaseType)
{
return TypeDescriptor.GetEditor(this, editorBaseType, true);
}
public EventDescriptorCollection GetEvents(Attribute[] attributes)
{
return TypeDescriptor.GetEvents(this, attributes, true);
}
public EventDescriptorCollection GetEvents()
{
return TypeDescriptor.GetEvents(this, true);
}
public PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
// 返回包含多个对象属性的PropertyDescriptorCollection
List properties = new List();
foreach (var obj in objects)
{
PropertyDescriptorCollection collection = TypeDescriptor.GetProperties(obj, attributes);
foreach (PropertyDescriptor descriptor in collection)
{
properties.Add(new CustomPropertyDescriptor(descriptor, obj));
}
}
return new PropertyDescriptorCollection(properties.ToArray());
}
public PropertyDescriptorCollection GetProperties()
{
return GetProperties(null);
}
public object GetPropertyOwner(PropertyDescriptor pd)
{
return this;
}
}
public class CustomPropertyDescriptor : PropertyDescriptor
{
private PropertyDescriptor descriptor;
private object obj;
public CustomPropertyDescriptor(PropertyDescriptor descriptor, object obj)
: base(descriptor)
{
this.descriptor = descriptor;
this.obj = obj;
}
public override object GetValue(object component)
{
return descriptor.GetValue(obj);
}
public override void SetValue(object component, object value)
{
descriptor.SetValue(obj, value);
}
public override void ResetValue(object component)
{
descriptor.ResetValue(obj);
}
public override bool CanResetValue(object component)
{
return descriptor.CanResetValue(obj);
}
public override bool ShouldSerializeValue(object component)
{
return descriptor.ShouldSerializeValue(obj);
}
public override Type ComponentType
{
get { return descriptor.ComponentType; }
}
public override bool IsReadOnly
{
get { return descriptor.IsReadOnly; }
}
public override Type PropertyType
{
get { return descriptor.PropertyType; }
}
}
List objects = new List
{
new object1(),
new object2(),
new object3()
};
CustomTypeDescriptor typeDescriptor = new CustomTypeDescriptor(objects);
propertyGrid1.SelectedObject = typeDescriptor;
```
以上两种方式都可以在PropertyGrid中显示多个对象的属性,并根据需要进行分组和组织。

--结束END--

本文标题: propertygrid多个对象怎么显示

本文链接: https://lsjlt.com/news/414697.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • propertygrid多个对象怎么显示
    在PropertyGrid中显示多个对象可以通过两种方式实现:1. 使用属性类别:- 创建一个父对象,其中包含多个子对象。- 给每个...
    99+
    2023-09-22
    propertygrid
  • PropertyGrid 控件如何显示两层嵌套的动态 JSON 对象
    要在 PropertyGrid 控件中显示两层嵌套的动态 JSON 对象,您需要创建一个类来表示 JSON 对象的结构,并将其绑定到...
    99+
    2023-09-26
    PropertyGrid
  • 怎么显示JavaScript对象
    今天小编给大家分享一下怎么显示JavaScript对象的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了...
    99+
    2024-04-02
  • Bootstrap3 多个模态对话框无法显示怎么办
    这篇文章主要介绍Bootstrap3 多个模态对话框无法显示怎么办,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!效果如下:第一个,正常弹出的Dialog第二个无法弹出,只是页面变暗的...
    99+
    2024-04-02
  • 怎么用JavaScript创建多个对象
    本文小编为大家详细介绍“怎么用JavaScript创建多个对象”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用JavaScript创建多个对象”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起...
    99+
    2024-04-02
  • 怎么使用JavaScript创建多个对象
    本篇内容介绍了“怎么使用JavaScript创建多个对象”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、...
    99+
    2024-04-02
  • json包含多个对象怎么解析
    解析包含多个对象的 JSON 可以使用以下方法:1. 如果 JSON 是一个数组,你可以使用循环来遍历数组并解析每个对象。例如:``...
    99+
    2023-08-25
    json
  • wpf怎么绑定一个对象的多个属性
    在WPF中,可以使用绑定表达式来绑定一个对象的多个属性。首先,需要创建一个实现了INotifyPropertyChanged接口的类...
    99+
    2023-09-06
    wpf
  • c++中一个对象怎么运行多个线程
    在C++中,一个对象可以通过创建多个线程来同时执行多个任务。为了实现这一点,你可以使用C++的多线程库,例如std::thread或...
    99+
    2024-02-29
    c++
  • java怎么一次性创建多个对象
    在Java中,可以使用循环结构和数组来一次性创建多个对象。具体步骤如下:1. 定义一个类,用于创建对象。例如,创建一个名为Stude...
    99+
    2023-09-22
    java
  • 怎么高效率的保存多个python对象
    这篇文章主要介绍“怎么高效率的保存多个python对象”,在日常操作中,相信很多人在怎么高效率的保存多个python对象问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么高效率的保存多个python对象”的疑...
    99+
    2023-06-02
  • JOIN怎么显示来自多个表的数据
    这篇文章主要介绍“JOIN怎么显示来自多个表的数据”,在日常操作中,相信很多人在JOIN怎么显示来自多个表的数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JOIN怎么显示...
    99+
    2024-04-02
  • ultraedit同时显示多个文件怎么设置
    本篇内容主要讲解“ultraedit同时显示多个文件怎么设置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ultraedit同时显示多个文件怎么设置”吧!ultraedit同时显示多个文件设置教...
    99+
    2023-07-01
  • c++中怎么实现一个对象运行多个线程
    在C++中,可以使用线程库来实现一个对象运行多个线程。下面是一个简单的示例: #include #include class ...
    99+
    2023-10-25
    c++
  • wps怎么为同一对象添加多个动画
    这篇文章主要介绍wps怎么为同一对象添加多个动画,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!添加方法:首先打开需要进行操作的ppt演示文档,选中指定对象;然后点击页面顶部的“动画”选项卡,选择指定动画效果;接着点击...
    99+
    2023-06-15
  • Mybatis中多个对象包含同一个对象的处理操作
    多个对象对应一个对象时,应该如何进行查询? 例如 关键字:association : 联系 ,关联 多个人可以关联一个人。 首先做一些准备,如:实体类,工具类和Mybatis核心文件...
    99+
    2024-04-02
  • JavaScript如何将对象显示为表格
    这篇文章将为大家详细讲解有关JavaScript如何将对象显示为表格,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。将对象显示为表格有时,您要查看一组复杂的对象。您可以console.log它们并在列表中滚...
    99+
    2023-06-27
  • JavaScript如何创建多个对象
    本文小编为大家详细介绍“JavaScript如何创建多个对象”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript如何创建多个对象”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学...
    99+
    2024-04-02
  • js如何合并多个对象
    这篇文章将为大家详细讲解有关js如何合并多个对象,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。合并多个对象实际需求中,我们经常需要合并多个对照,快速的做法可以像下面这么做:const user&...
    99+
    2023-06-27
  • 怎么在JavaScript中将多个对象合并成一个数组
    怎么在JavaScript中将多个对象合并成一个数组?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。JavaScript有什么特点1、js属于一种解释性脚本语言;2、在绝大多...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作