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

  • 相关阅读:
    Hadoop的运行痕迹
    生活常识
    hadoop集群崩溃恢复记录
    Hadoop_NameNode_代码分析_目录树(2)
    .NET Is 和 As 的区别
    hadoop集群管理之 SecondaryNameNode和NameNode
    sql2005分页存储过程原创
    c#生成json数据 JavaScript对json数据处理
    LVS改变ConnectionHashtable值
    MySQL Cluster集群配置
  • 原文地址:https://www.cnblogs.com/tianmochou/p/5085898.html
Copyright © 2011-2022 走看看