C#继承基本控件实现自定义控件

转帖自:http://www.cnblogs.com/greatverve/archive/2012/04/25/2354519.html

自定义控件分三类:
1.复合控件:基本控件组合而成。继承自UserControl
2.扩展控件:继承基本控件,扩展一些属性与事件。比如继承Button
3.自定义控件:直接继承自Control
今天把扩展控件简单入门。
------------------------------------------------------------------
步骤一:这里首先要建一个Windows控件库项目。
步骤二:新建用户控件,修改代码(注意注释掉.Designer.cs文件中的代码)
扩展Button

复制代码

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 WinFormControlLibrary
{
public partial class UcButton : Button
    {
public UcButton()
        {
            InitializeComponent();
        }
// Creates the private variable that will store the value of your 
// property.
private int varValue;
// Declares the property.
public int ButtonValue
        {
// Sets the method for retrieving the value of your property.
get
            {
return varValue;
            }
// Sets the method for setting the value of your property.
set
            {
                varValue = value;
            }
        }
    }
}

复制代码

修改.Desinger.cs

复制代码

namespace WinFormControlLibrary
{
partial class UcButton
    {
///


/// Required designer variable.
///

private System.ComponentModel.IContainer components = null;
///
/// Clean up any resources being used.
///

/// true if managed resources should be disposed; otherwise, false.
protected override void Dispose(bool disposing)
        {
if (disposing && (components != null))
            {
                components.Dispose();
            }
base.Dispose(disposing);
        }
#region Component Designer generated code
///
/// Required method for Designer support - do not modify 
/// the contents of this method with the code editor.
///

private void InitializeComponent()
        {
            components = new System.ComponentModel.Container();
//把这句注释掉
//this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        }
#endregion
    }
}

复制代码

扩展Label

复制代码

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 WinFormControlLibrary
{
public partial class UcLabel : Label
    {
public UcLabel()
        {
            InitializeComponent();
        }
protected override void OnMouseEnter(EventArgs e)
        {
base.OnMouseEnter(e);
this.Font = new Font("宋体", 10F, FontStyle.Underline);
        }
protected override void OnMouseLeave(System.EventArgs e)
        {
base.OnMouseLeave(e);
this.Font = new Font("宋体", 10F, FontStyle.Regular);
        }
    }
}

复制代码

步骤三:在其他Windows窗体项目中添加项目引用。编译之后就在工具箱看到生成的自定义控件。
url:http://greatverve.cnblogs.com/archive/2012/02/16/user-control-Inherit.html
参考msdn:

http://msdn.microsoft.com/zh-cn/library/5h0k2e6x(v=vs.80).aspx

http://blog.csdn.net/yysyangyangyangshan/article/details/7078471

转载于:https://www.cnblogs.com/yougyoum/archive/2012/08/31/2665202.html

你可能感兴趣的:(C#继承基本控件实现自定义控件)