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

浙公网安备 33010602011771号