请教 2 个问题第一:请高手给出一个 窗体自定义的时间 例子 代码第一:下面代码是我自己定义的窗体事件,显然问题多多 麻烦高手帮忙解释一下namespace WindowsApplication9
{
    public delegate void evtCalculatingArea();    public partial class Form1 : Form
    {
        public event evtCalculatingArea CalculatingArea;        public override string Text
        {
            get
            {
                return base.Text;
            }
            set
            {
                base.Text = value;
            }
        }        public Form1()
        {
            InitializeComponent();
        }        public void s(object sender,EventArgs e)
        {
            MessageBox.Show("调用事件");
        }        private void Form1_Load(object sender, EventArgs e)
        {
            this.CalculatingArea += new evtCalculatingArea(Form1_CalculatingArea);
        }        void Form1_CalculatingArea()
        {
            throw new Exception("The method or operation is not implemented.");
        }    }
}

解决方案 »

  1.   

    参考的例子,
    http://blog.csdn.net/zhzuo/archive/2004/11/30/199599.aspx
      

  2.   

    第二个问题:
    namespace WindowsApplication9
    {
      public delegate void evtCalculatingArea();  public partial class Form1 : Form
      {
        public event evtCalculatingArea CalculatingArea;->namespace WindowsApplication9
    {
      public partial class Form1 : Form
      {
        public delegate void evtCalculatingArea();
        public event evtCalculatingArea CalculatingArea;
      

  3.   

    一般的使用模式
    在调用类(MainFrom)中给被调用类(Form1)的事件挂上处理代码.
    事件相当于一个占位符,在需要的时候加上特殊处理代码。namespace WindowsApplication9
    {
        public delegate void evtCalculatingArea();    public partial class Form1 : Form
        {
            public event evtCalculatingArea CalculatingArea;        public override string Text
            {
                get
                {
                    return base.Text;
                }
                set
                {
                    base.Text = value;
                }
            }        public Form1()
            {
                InitializeComponent();
            }        public void s(object sender,EventArgs e)
            {
                MessageBox.Show("调用事件");
            }        private void Form1_Load(object sender, EventArgs e)
            {
                this.CalculatingArea += new evtCalculatingArea(Form1_CalculatingArea);
            }        void Form1_CalculatingArea()
            {
                //处理代码
                //
                //。            //事件处理代码
                if (CalculatingArea != null)
                {
                    CalculatingArea();
                }
            }    }    public class  MainFrom : Form
        {
              public MainFrom()
              {
                   //初始化
               }
         
        private void MainFrom_Load(object sender, EventArgs e)
            {
          Form1 form1 = new Form1();
               
               form1.CalculatingArea += new evtCalculatingArea(MainFrom_CalculatingArea);
            }         private void MainFrom_CalculatingArea()
            {
                throw new Exception("The method or operation is not implemented.");
            }
        }
    }
      

  4.   

    .net里一般是一个事件对应一个On方法
    如:Button的Click事件对应OnClick方法
     public override OnClick(EventArgs e)
    {
       if (eventClick != null)
       {
          eventClick(this, e);
       }
    }eventClick 就是在Button类中定义的私有事件变量,也就是事件Click如果没有给Click事件挂载任何代码,就会判断为Null,不执行操作。因为OnClick方法是override的,所以可以直接继承Button,然后重载OnClick方法,这和使用Click事件的效果是一样的。一个事件对应一个On方法只是一个良好的代码模式,并不是一定要机械的这么写,看实际需要