_cuclife.com
当前位置:cuclife.com > IT > ASP.NET >

.NET组件编程(6) Component Designer

这章主要讲Component的Designer,Designer顾名思义就是为Component设计时服务的,Designer可以在设计时修改组件的行为,还可以提供它自己的服务和行为。

   在.net里要为Control或者Component定制Designer,只要从IDesigner继承下来即可,但是在.net里ms已经帮我们做了两个从IDesigner继承下来的基类,ComponentDesigner和ControlDesigner,ComponentDesigner是为Component而设计的,ControlDesigner是为Control而设计的,所以我们可以直接从ComponentDesigner继承。

   Designer可以提供右键快捷菜单上的菜单命令,我们可以通过实现ComponentDesigner 谓词(Verbs) 属性来定义 get 访问器,该访问器返回的 DesignerVerbCollection 中包含用于生成菜单命令的 DesignerVerb 对象。

  同时我们对组件被双击时定制默认操作,在Component Designer实现 DoDefaultAction 方法即可。

   示例代码如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Windows.Forms;
using System.Windows.Forms.Design;

namespace ClassLibrary1
{
    [DefaultEvent("CustomerLogin")]
    [Designer(typeof(Class1Designer), typeof(IDesigner)), Editor(typeof(Class1Editor), typeof(ComponentEditor))]
    public class Customer : Component
    {
        private string _parentComponentName;
        private int _age;
        private string _address;

        public delegate void CustomerLoginEventHandler(object sender, CustomerLoginEventArgs e);
        public delegate void CustomerLogoutEventHandler(object sender, CustomerLogoutEventArgs e);

        public string ParentComponentName
        {
            get { return _parentComponentName; }
            set { _parentComponentName = value; }
        }
       
        public int Age
        {
            get { return _age; }
            set { _age = value; }
        }

        public string Address
        {
            get { return _address; }
            set { _address = value; }
        }

        public sealed class CustomerLoginEventArgs : EventArgs { }
        public sealed class CustomerLogoutEventArgs : EventArgs { }

        public event CustomerLoginEventHandler CustomerLogin
        {
            add { }
            remove { }
        }

文章来源:网络整理  本站编辑:兰特
上一篇:.NET组件编程(7) Component DesignerAction(智能标
下一篇:.NET组件编程(5) TypeConverterAttribute,类型转换
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)