本文转自http://www.cnblogs.com/virusswb/archive/2008/05/25/1206914.html
![66.JPG](https://images.cnblogs.com/cnblogs_com/virusswb/66.JPG)
用户控件效果如上图
代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
namespace WindowsControlLibrary1
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
public partial class UserControl1 : UserControl
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
public event EventHandler AddressLine1Changed;
public event EventHandler AddressLine2Changed;
public event EventHandler ZoneChanged;
public event EventHandler NumberChanged;
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
private void TextBoxControls_TextChanged(object sender, EventArgs e)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
switch (((TextBox)sender).Name)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
case "txtAddress1":
if (AddressLine1Changed != null)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
AddressLine1Changed(this, EventArgs.Empty);
}
break;
case "txtAddress2":
if (AddressLine2Changed != null)
AddressLine2Changed(this, EventArgs.Empty);
break;
case "txtZone":
if (ZoneChanged != null)
ZoneChanged(this, EventArgs.Empty);
break;
case "txtNumber":
if (NumberChanged != null)
NumberChanged(this, EventArgs.Empty);
break;
}
}
[Category("NumberData"), DescriptionAttribute("Gets or sets the Number value"), DefaultValue("")]
public string Number
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return this.txtNumber .Text; }
set
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if (txtNumber.Text != value)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
txtNumber.Text = value;
if (NumberChanged != null)
NumberChanged(this, PropertyChangedEventArgs.Empty);
}
}
}
[Category("AddressData"), DescriptionAttribute("Gets or sets the AddressLine1 value"), DefaultValue("")]
public string AddressLine1
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return txtAddress1.Text; }
set
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if (txtAddress1.Text != value)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
txtAddress1.Text = value;
if (AddressLine1Changed != null)
AddressLine1Changed(this, PropertyChangedEventArgs.Empty);
}
}
}
[Category("AddressData"), DescriptionAttribute("Gets or sets the AddressLine2 value"), DefaultValue("")]
public string AddressLine2
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return txtAddress2.Text; }
set
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if (txtAddress2.Text != value)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
txtAddress2.Text = value;
if (AddressLine2Changed != null)
AddressLine2Changed(this, PropertyChangedEventArgs.Empty);
}
}
}
[Category("ZoneData"), DescriptionAttribute("Gets or sets the Zone value"), DefaultValue("")]
public string Zone
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return txtZone.Text; }
set
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if (txtZone.Text != value)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
txtZone.Text = value;
if (ZoneChanged!= null)
ZoneChanged(this, PropertyChangedEventArgs.Empty);
}
}
}
public UserControl1()
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
InitializeComponent();
}
}
}