FLASH游戏 | 站长工具 | 技术学院 忙鱼网 怕笑网 
积木网
VBScript手册  |  C#  |  C++  |  PB  |  Builder  |  Ajax  |  VB  |  VC  |  JAVA  |  delphi  |  J2EE  |  SQL  |  XML  |  PHP  |  .NET  |  ASP  |  JSP  |  CGI  |  Script  |  综合  |  HTML
推荐: PHP5中文在线手册 | Smarty中文手册(模板引擎) | css2样式表中文手册 | ASP开发手册 | JScript开发手册
积木网 >> 程序开发 >> .NET

用托管C++编写自定义Web组合控件(3)

来源:互联摘选 日期:2001年01月01日 14:25:53
     引发事件
  
    如果想让控件的用户访问到单击事件,那该怎么做呢?我们需要创建一个公共的__event,在此之上,用户可提供他们自己的事件处理函数:
  
  __event EventHandler* Click;
  
    或许,你还想提供一个受保护的OnClick()方法,这样,如果有人从SearchControl继承,在传回控件给SearchControl自定义Web组合控件之前或之后,他可为单击事件提供一些额外的功能。另外,如果你很专心,那一定注意到了buttonClick()事件处理函数实际上是调用了OnClick()方法,由其把控件从按钮传递到任意事件处理函数,而事件处理函数则可被附加于控件的单击事件之上。
  
  void SearchControl::OnClick(EventArgs *e)
  {
   if (Click != 0)
    Click(this, e);
  }
  
    因为单击事件是默认也是唯一的事件,也许,再添加一个DefaultEvent("Click")属性,指定单击为控件的默认事件,会是一个不错的主意:
  
  [DefaultProperty("Value"), DefaultEvent("Click"),
  ToolboxData("<{0}:SearchControl
  runat=server></{0}:SearchControl>")]
  public __gc class SearchControl :
  public System::Web::UI::WebControls::WebControl
  {}
  
    请记住,如果你修改了元数据(属性),那必须删除并重新引用程序集,以便元数据可被重新识别。一般而言,如果要使用此控件,只需在设计器中双击SearchControl控件,以创建一个事件处理函数。(下面假定使用者的代码为C#代码):
  
  private void SearchControl1_Click(object sender, System.EventArgs e)
  {
   WebCustomControl1.Text = SearchControl1.Value;
  }
  
    在本文结束时,作一下简单的小结,在托管C++中开发自定义Web控件,涉及了一些比较有意思的事情:首先,它创建了一个由四个服务端控件所组成的自定义Web组合控件,并演示了怎样使用属性来操作控件;其次,还说明了怎样处理由控件产生的事件;最后,演示了怎样传递事件给使用自定义组合控件的Web应用程序。
    

被阅读 0 次 本文现有评论 0
打印】 【收藏此页】 【关闭

强烈推荐

热门知识

最新文章

合作伙伴:网乐宽频 | 北京画廊
站长 服务邮箱:GimooHr(#)Gmail.Com 站长交流群:6412338 联系站长QQ号:36147437
Copyright © 2008 Gimoo.NetInc. all rights reserved 京ICP备05050695号