本例通过自定义一个Button,这个Button继承了原Button的所有属性,且增加了一个 ButtonValve属性。使得在属性设计器里面给这个ButtonValve赋值后,可以把这个值给其他地方赋。
使用 C#,您可以通过 继承创建强大的自定义控件。 通过继承,你可以创建保留标准 Windows 窗体控件的所有固有功能的控件,但也包含自定义功能。 在本演练中,你将创建一个名为 ValueButton
的简单继承控件。 此按钮将从标准 Windows 窗体 Button 控件继承功能,并公开名为 ButtonValue
的自定义属性。
如果要创建在 Web 窗体上使用的自定义控件,请参阅《开发自定义 ASP.NET 服务器控件》。
一、创建 控件库 和 控件
1、
2、
3、
4、完成后点击 文件----保存全部
5、完成后点击 文件----保存全部
二、往控件里面添加属性
继承的 Windows 窗体控件的可能用途之一是创建与标准 Windows 窗体控件的外观和感受相同、但公开自定义属性的控件。 在本节中,将向控件中添加名为ButtonValue的属性。
1、完成后点击 文件---保存
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsControlLibrary1
{
public partial class ValButton: Button // 换掉了UserControl
{
//public ValButton()
//{
// 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
;
}
}
}
}
此代码设置存储和检索ButtonValue属性的方法。get语句将返回的值设置为存储在私有变varValue中的值,而set语句通过使用value关键字设置该私有变量的值。
2、 ☆ 生成控件 ☆
在“生成”菜单中,单击“生成解决方案”。
三、测试控件
1、
2、
3、点击添加
4、
右键 “自制控件测试”,点击生成
5、
6、拖入自制控件,双击,并修改属性值,在双击后,填入以下值。
private void valButton1_Click(object sender, EventArgs e)
{
textBox1.Text = valButton1.ButtonValue.ToString();
}
6、Form1设置为启动项,点击 启动运行