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

  • 相关阅读:
    shell脚本中生成延时
    linux小技巧
    自定义微信圈分享带的图片和内容
    OOM killer
    svn报错
    Fatal error: Call-time pass-by-reference has been removed
    ThinkPHP3.1.3源码分析---php文件压缩zlib.output_compression 和 ob_gzhandler
    确保 PHP 应用程序的安全
    判断来自电脑还是手机
    以About Us为范例在Zen cart中增加页面
  • 原文地址:https://www.cnblogs.com/tianmochou/p/5085898.html
Copyright © 2011-2022 走看看