CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

请教一个简单自定 窗体事件 例子 谢谢

楼主leike1982()2006-06-03 21:51:13 在 .NET技术 / C# 提问

请教   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.");  
                  }  
   
          }  
  } 问题点数:40、回复次数:7Top

1 楼leike1982()回复于 2006-06-03 23:01:30 得分 0

upTop

2 楼ProjectDD()回复于 2006-06-04 00:29:06 得分 0

这个事件声明和实现都在一个类体中..而且没有写如何实现   事件的On方法还没有写.Top

3 楼zhzuo(秋枫)回复于 2006-06-04 22:03:59 得分 0

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

4 楼leike1982()回复于 2006-06-05 13:01:45 得分 0

upTop

5 楼kssys()回复于 2006-06-05 13:12:43 得分 0

第二个问题:  
  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;Top

6 楼xvting(xvting)回复于 2006-06-05 13:24:02 得分 0

一般的使用模式  
  在调用类(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.");  
                  }  
   
   
          }  
  }  
  Top

7 楼xvting(xvting)回复于 2006-06-05 13:41:54 得分 0

.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方法只是一个良好的代码模式,并不是一定要机械的这么写,看实际需要Top

相关问题

关键词

得分解答快速导航

  • 帖主:leike1982

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo