![66.JPG](/images/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;
![](/Images/OutliningIndicators/None.gif)
namespace WindowsControlLibrary1
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
{
public partial class UserControl1 : UserControl
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
public event EventHandler AddressLine1Changed;
public event EventHandler AddressLine2Changed;
public event EventHandler ZoneChanged;
public event EventHandler NumberChanged;
![](/Images/OutliningIndicators/InBlock.gif)
private void TextBoxControls_TextChanged(object sender, EventArgs e)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
switch (((TextBox)sender).Name)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
case "txtAddress1":
if (AddressLine1Changed != null)
![](/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
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return this.txtNumber .Text; }
set
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if (txtNumber.Text != value)
![](/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
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return txtAddress1.Text; }
set
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if (txtAddress1.Text != value)
![](/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
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return txtAddress2.Text; }
set
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if (txtAddress2.Text != value)
![](/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
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
get
{ return txtZone.Text; }
set
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if (txtZone.Text != value)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
txtZone.Text = value;
if (ZoneChanged!= null)
ZoneChanged(this, PropertyChangedEventArgs.Empty);
}
}
}
public UserControl1()
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
InitializeComponent();
}
}
}