zoukankan      html  css  js  c++  java
  • c# propertyGrid下拉选项

    实现下面效果的propertygrid属性下拉选择

    具体代码如下

    //form窗口类

        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                properties ps = new properties();
                propertyGrid1.SelectedObject = ps;
            }
        }

    //属性类

        public class properties
        {
            [Category("性别"),Description("student gender"),
            TypeConverter(typeof(genderItem)) //使用自定义的属性下拉item类
            ]
            public string Gender
            {
                get;
                set;
            }
        }

    //自定义属性下拉效果的类,该类主要继承StringConverter类,并重载该类的一些虚拟方法

        public class genderItem:StringConverter
        {
            //true enable,false disable
            public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
            {
                return true;
            }

            public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
            {
                return new StandardValuesCollection(new string[] { "男", "女" }); //编辑下拉框中的items
            }

            //true: disable text editting.    false: enable text editting;
            public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
            {
                return true;
            }
        }

    //形成checkbox选项样式

    属性类的代码如下

            [Category("信息"), Description("student information"),
            Editor(typeof(CheckboxPro),typeof(System.Drawing.Design.UITypeEditor))]
            public bool IsGoodStudent
            {
                get;
                set;
            }

    其中checkboxpro类定义如下,用该方法会出了checkbox窗口

        public class CheckboxPro:System.Drawing.Design.UITypeEditor
        {
            public override bool GetPaintValueSupported(ITypeDescriptorContext context)
            {
                return true;
            }

            public override void PaintValue(System.Drawing.Design.PaintValueEventArgs e)
            {
                ControlPaint.DrawCheckBox(e.Graphics, e.Bounds, ButtonState.Inactive);
            }
        }

  • 相关阅读:
    XToDo未完成内容标记管理器
    FuzzyAutocomplete代码模糊匹配智能提示
    KSImageNamed项目图片智能提示
    Backlight当前行背景高亮显示
    VVDocumenter规范注释生成器
    window.frames[]在Firefox下无法兼容的解决方式
    加密算法(扩展知识:Base64编码)
    Single Pattern(单例模式)
    C语言的基本数据类型长度
    移位操作和二进制知识
  • 原文地址:https://www.cnblogs.com/tianmochou/p/5085898.html
Copyright © 2011-2022 走看看