对委托与事件只理解了一个表皮,现在有这样一个需求,希望各位高人帮我实现一下:
1、新建一个windows控件库,不是应用程序哦,在上面放一个TextBox控件
2、为该控件库增加一个TextChange事件,要求当TextBox产生了TextChange事件时,调用该自定义控件的TextChange事件,这样,我就可以将TextBox封装起来而不用暴露给具体的应用程序了,一切都在内部解决.
   不知道表达清楚没有,也就是说,当TextBox的文本改变时,激发该自定义控件的TextChange事件,从而达到既能利用TextBox的文本改变事件,又不暴露该文本框的目的,该如何实现呢?最好有具体代码.

解决方案 »

  1.   

    为你的控件可以这样添加自定义事件:
    //定义
    public event EventHandler MyTextBoxChanged;//使用:if (this.MyTextBoxChanged!=null)
    {
        this.MyTextBoxChanged(this, new EventArgs());//引发事件。
    }
      

  2.   

    在你的代码里可以参考如下的代码来写:
    using System.Data;
    using System.Text;
    using System.Windows.Forms;namespace TextBoxApp
    {
    public partial class UserControl1 : UserControl
    {
    public event EventHandler MyTextBoxChanged;
    public UserControl1()
    {
    InitializeComponent(); this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
    } private void textBox1_TextChanged(object sender, EventArgs e)
    {
    if (this.MyTextBoxChanged != null)
    {
    EventArgs args = new EventArgs();
    this.MyTextBoxChanged(this, args);
    }
    }
    }
    }
      

  3.   

    为你的控件可以这样添加自定义事件:
    //定义
    public event EventHandler MyTextBoxChanged;//使用:if (this.MyTextBoxChanged!=null)
    {
        this.MyTextBoxChanged(this, new EventArgs());//引发事件。
    }
    ========================================================================
    这个方法就是我需要的,多谢!