现在的位置: 首页 > 综合 > 正文

简单的用户自定义控件

2013年03月04日 ⁄ 综合 ⁄ 共 3548字 ⁄ 字号 评论关闭

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;

namespace StephenJu.Second
{
    
public partial class UserControl1 : UserControl
    {
        
public UserControl1()
        {
            InitializeComponent();
        }

        public event EventHandler AddressLine1Changed;//定义不包含事件数据的事件的方法
        public event EventHandler AddressLine2Changed;
        
public event EventHandler ZoneChanged;
        
public event EventHandler NumberChanged;

        [Category("NumberData"),DescriptionAttribute("Get or sets the Number value"),DefaultValue("")]
        
public string Number
        {
            
get { return this.txtNumber.Text;}
            
set
            {
                
if (txtNumber.Text != value)
                {
                    txtNumber.Text 
= value;
                    
if (NumberChanged != null)
                    {
                        NumberChanged(
this, PropertyChangedEventArgs.Empty);
                    }
                }
            }
        }

        [Category("AddressData"), DescriptionAttribute("Gets or sets the AddressLine1 value"), DefaultValue("")]
        
public string AddressLine1
        {
            
get { return this.txtAddress1.Text; }
            
set
            {
                
if (txtAddress1.Text != value)
                {
                    txtAddress1.Text 
= value;
                    
if (AddressLine1Changed != null)
                    {
                        AddressLine1Changed(
this, PropertyChangedEventArgs.Empty);
                    }
                }
            }
        }

        [Category("AddressData"), DescriptionAttribute("Gets or sets the AddressLine2 value"), DefaultValue("")]
        
public string AddressLine2
        {
            
get { return this.txtAddress2.Text; }
            
set
            {
                
if (txtAddress2.Text != value)
                {
                    txtAddress2.Text 
= value;
                    
if (AddressLine2Changed != null)
                    {
                        AddressLine2Changed(
this, PropertyChangedEventArgs.Empty);
                    }
                }
            }
        }

        [Category("ZoneData"), DescriptionAttribute("Gets or sets the Zone value"), DefaultValue("")]
        
public string Zone
        {
            
get { return this.txtZone.Text; }
            
set
            {
                
if (txtZone.Text != value)
                {
                    txtZone.Text 
= value;
                    
if (ZoneChanged != null)
                    {
                        ZoneChanged(
this, PropertyChangedEventArgs.Empty);
                    }
                }
            }
        }

        private void TextBoxControls_TextChanged(object sender,EventArgs e)
        {
            
switch(((TextBox)sender).Name) //控件的名称
            {
                
case "txtAddress1":
                    
if (AddressLine1Changed != null)
                        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;
            }
        }
    }
}

摘自:virus

抱歉!评论已关闭.