【www.gdgbn.com--文本特效】

c# property属性和改变编辑多行文本

一个常见的属性的使用。其中name 属性没有定义私有字段,而age定义了已有字段。

 

public sealed class employee {
// this property is an automatically implemented property
public string name { get; set; }
private int32 m_age;
public int32 age {
get { return(m_age); }
set {
if (value < 0) // the "value" keyword always identifies the new value.
throw new argumentoutofrangeexception("value", value.tostring(),
"the value must be greater than or equal to 0");
m_age = value;
}
}


}

改变 propertygrid 控件的编辑风格(2)——编辑多行文本

效果:

适用场合:

1、 编辑多行文本;

2、 编辑长文本。

 步骤一:定义从uitypeeditor 派生的类,示例如下:

using system;  
using system.windows.forms;  
using system.drawing.design;  
using system.windows.forms.design; 
namespace blog.111cn.net.zhangyuk  
{  
    ///   
    /// propertygridmutitext 的摘要说明。  
    ///
  
    public class propertygridrichtext : uitypeeditor  
    {  
        public override uitypeeditoreditstyle geteditstyle(system.componentmodel.itypedescriptorcontext context) 
        {  
            return uitypeeditoreditstyle.dropdown;  
        }  
        public override object editvalue(system.componentmodel.itypedescriptorcontext context, system.iserviceprovider provider, object value)  
        {  
            try 
            {  
                iwindowsformseditorservice edsvc =   
(iwindowsformseditorservice)provider.getservice(typeof(iwindowsformseditorservice));  
                if (edsvc != null)  
                {  
                    if (value is string)  
                    {  
                        richtextbox box = new richtextbox();  
                        box.text = value as string;  
                        edsvc.dropdowncontrol(box);  
                        return box.text;  
                    }  
                }  
            }  
            catch (exception ex)  
            {  
                system.console.writeline("propertygridrichtext error : " + ex.message);  
                return value;  
            }  
            return value;  
        }  
    }  
}  


 步骤二:编辑属性类,指定编辑属性。示例如下:
 

namespace blog.111cn.net.zhangyuk

{

    public class someproperties

    {

        private string _finished_time = "";

        //   ……

        // 多行文本编辑框

        string _mutilinesample = "";

        [description("多行文本编辑框"), category("属性"), editorattribute(typeof(propertygridrichtext),

typeof(system.drawing.design.uitypeeditor))]

        public string 多行文本

        {

            get { return _mutilinesample; }

            set { _mutilinesample = value; }

        }

        //……

    }

}

 

 步骤三:设置propertygrid的属性对象。示例如下:
private void form1_load(object sender, system.eventargs e)

        {

            this.propertygrid1.selectedobject = new someproperties();

        }

 

本文来源:http://www.gdgbn.com/wangyetexiao/28592/