C#中自定义控件设计

第一步:新建一个控件库,即Windows Forms Control Library

  如图

  注:如果要添加多个控件,可在解决方法下的工程文件上右击-》Add->User Control

  如图

 

第二步:控件编程

定义了一个控件:功能是显示标题,可修改;文本框中显示时间,可有按钮控制开始和停止;文本颜色底色可变。

如图

代码如下,给出了必要的注释:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace kongjian
{
    public partial class kongjian2 : UserControl
    {
        public kongjian2()
        {
            InitializeComponent();
        }
        #region
        [Browsable(true)]               //判断该对象是否可浏览
        [Category("others")]            //Description指定属性或事件的说明。
                                        //Category指定当属性或事件显示在一个设置为“按分类顺序”模式的 PropertyGrid 控件中时,
                                        //用于给属性或事件分组的类别的名称。 Browsable指定一个属性或事件是否应显示在“属性”窗口中。
        private string myTitle = "";    //定义内部变量(字段)
        public string 题目              //定义该变量(字段)的属性
        {
            get                         //获取值
            {
                return myTitle;
            }
            set                         //设置值
            {
                myTitle = value;       
                labTitle.Text  = myTitle;
            }
        }
        [Browsable(true)]
        [Category("others")]
        private backColor myColor;              //用结构体定义变量(字段)
        public backColor 时间底色               //为该字段设置属性
        {
            get
            {
                return myColor;
            }
            set
            {
                myColor = value;           
                if (myColor ==backColor.白色)           //通过设置值,是否为结构体中的值:白色
                    txtShow.BackColor = Color.White;
                else if (myColor == backColor.黄色)      //过设置值,是否为结构体中的值:黄色
                    txtShow.BackColor = Color.Yellow;
                else if (myColor ==backColor.绿色)
                    txtShow.BackColor = Color.Green;     ////过设置值,是否为结构体中的值:绿色
            }
        }
        public enum backColor                       //定义一个结构体变量,为设置颜色准备
        {
            白色=0,                                 //注意结构体的书写方式,只能用逗号隔开,且最后一个不需要逗号
            黄色=1,
            绿色=2
        }
        #endregion

        private void btnStart_Click(object sender, EventArgs e)
        {
            tim.Enabled = true;
        }

        private void btnStop_Click(object sender, EventArgs e)
        {
            tim.Enabled = false;
        }

        private void tim_Tick(object sender, EventArgs e)
        {
            txtShow.Text = DateTime.Now.ToString();
        }

    }
}

posted @ 2013-03-18 22:47  在路上的人  阅读(1028)  评论(0)    收藏  举报