天天看点

关于自定义控件

方法一:组合法

说明:将系统提供的多个控件组合成一个控件使用。

例如:将ListBox和TextBox组合成一个自定义控件MyDemoControl

步骤:

1,在项目中添加“用户控件”,查看代码可以父类为UserControl;

2,为控件设计“界面”;

3,为控件编程,添加自定义属性等;

4,为控件编程,添加方法(Public)

调试:

1,保存,重新生成项目;

2,在工具栏中,能看到当前项目自定义的组件,其中包括自定义控件MyDemoControl;

3,拖动到窗口;

方法二:派生法

说明:以系统的某个控件为父类,派生一个新控件。

例如:以Button类作为父类,设计一个自定义控件MyButton(可以设置提示文本的按钮)

步骤:

1,在项目中添加“自定义控件”,类名MyButton,父类为Button;

2,为控件编程,添加自定义属性等;

3,为控件编程,添加方法(Public);

4,注意,此控件在设计视图窗口不可见;

调试:

1,保存,重新生成项目;

2,在工具栏中,能看到当前项目自定义的组件,其中包括自定义控件MyButton;

3,拖动到窗口;

有关代码:

    public partial class MyButton : Button

    {

        private ToolTip _toolTip;  //内置ToolTip控件

        private string _TipsString;

        [DefaultValue(null)]

        [Description("提示消息"), Category("杂项")]

        [Browsable(true)]  //在属性窗口可见

        public string TipsText

        {

            get { return this._TipsString; }

            set

            {

              this._TipsString = value;

              _toolTip.SetToolTip(this, _TipsString);

            }

        }

        public MyButton()

        {

            InitializeComponent();

            _toolTip = new ToolTip();

            this._toolTip.InitialDelay = 0;

            this._toolTip.ReshowDelay = 0;

            this._toolTip.SetToolTip(this, _TipsString);

        }

        public void SetTip(string tips)

        {

            if (tips != null)

            {

                this._TipsString = tips;

                this._toolTip.SetToolTip(this, _TipsString);

            }

        }

    }

方法三:第三方控件(拿来主义)

说明:搜索别人提供的第三方控件(dll文件),按说明安装使用。

例如:SideBar,侧边栏控件

步骤:

1,在项目中添加“引用”,按提示操作;

2,在工具箱可见该控件,拖动到窗口中;

3,为控件编程;

调试:

1,保存,重新生成项目;

2,观察运行效果;

转载自:http://scaucs.net/Student/ShowTopic?homeworkID=61133