zoukankan      html  css  js  c++  java
  • C#中使用Property Grid(属性面板)控件

    1.将Property Grid 控件添加到工具箱中

    由于默认情况下Property Grid 控件没有显示在工具箱中所以需要手动添加。

     

    图1 将Property Grid添加到工具箱(在工具箱上右键选择添加/移除项)

     

    图2 在自定义工具箱对话框中选中PropertyGrid控件

    2.编写自定义类,并跟PropertyGrid控件进行绑定

    using System;
    using System.ComponentModel;

    namespace PropertyGridDemo
    {
     [DefaultPropertyAttribute("Name")]
     public class Customer
     {
      private string name;
      private string email;
      private string mark;

      [CategoryAttribute("用户信息"), DescriptionAttribute("设置消费者姓名")]
      public string Name
      {
       get
       {
        return name;
       }
       set
       {
        name = value;
       }
      }

      [CategoryAttribute("用户信息"), DescriptionAttribute("设置消费者Email地址")]
      public string Email
      {
       get
       {
        return email;
       }
       set
       {
        email = value;
       }
      }

     [CategoryAttribute("备注"), DescriptionAttribute("备注信息")]
      public string Mark
      {
       get
       {
        return mark;
       }
       set
       {
        mark = value;
       }
      }
     
      public Customer()
      {
      }
     }
    }

    首先定义自定义类型的时候要引用System.ComponentModel命名空间,将使用到该命名空间中的一些Attribute类,在上面的例子中主要使用了DefaultPropertyAttribute,CategoryAttribute和DescriptionAttribute三个Attribute。

    DefaultPropertyAttribute       指定组件的默认属性。

    CategoryAttribute      指定当属性或事件显示在被一个设置为按分类顺序模式的 System.Windows.Forms.PropertyGrid 控件中时,用于给属性或事件分组的类别的名称。
    DescriptionAttribute 指定属性或事件的说明。

    在编写自定类的时候所有的属性都应该有get 和set方法,如果没有get方法那么这个属性在PropertyGrid中不显示,没有set方法的话则为只读属性在PropertyGrid中无法设置该属性的值。

    将自定义类与PropertyGrid控件进行绑定

    使用PropertyGrid类的SelectedObject属性进行绑定

    private void Form1_Load(object sender, System.EventArgs e)
      {
       Customer customer = new Customer();
       customer.Name = "张三";
       customer.Email = "zhangsan@sina.com";

       propertyGrid1.SelectedObject = customer;
      }

    运行结果:

     

  • 相关阅读:
    PHP实现无限极分类
    html2canvas生成并下载图片
    一次线上问题引发的过程回顾和思考,以更换两台服务器结束
    Intellij IDEA启动项目报Command line is too long. Shorten command line for XXXApplication or also for
    mq 消费消息 与发送消息传参问题
    idea 创建不了 java 文件
    Java switch 中如何使用枚举?
    Collections排序
    在idea 设置 git 的用户名
    mongodb添加字段和创建自增主键
  • 原文地址:https://www.cnblogs.com/lzjsky/p/2060677.html
Copyright © 2011-2022 走看看