C#重点知识详解(五 代理:二 )

    技术2022-05-11  132

    导 读:处理事件在c#中对比c++和vb来说更聪明,你可以写代理然后写事件处理者,事件处理者是一种定义在控件和窗体类中的重载的公共事件。
    作者: wkrain   www.ASPCool.com    代理 二  1〉事件  上一章讲解了有关代理的基本应用,本章将继续讲解深入代理的使用。这里我们讲解使用代理来处理事件。关于事件在另一章进行详细讲解。处理事件在c#中对比c++和vb来说更聪明,你可以写代理然后写事件处理者,事件处理者是一种定义在控件和窗体类中的重载的公共事件。我们在以下的例子中将看到代理在事件中的应用。  1。写代理  我想处理鼠标单击事件和在鼠标单击左键或右键处理一些代码。写下面的代码在你的初始控件函数中。  this.MouseDown += new System.WinForms.MouseEventHandler(this.Form_MouseDown);  2. 写事件  现在你可以写事件处理,你的事件的输出参数将返回窗体的鼠标事件参数的详细内容。以下时鼠标事件参数成员  MouseEventArgs members  Button 指示哪一个键被压,分为左、右、中、无 。  Clicks 指示鼠标压下次数及释放状态。  Delta 指示鼠标转动数量计数  X 鼠标点击x坐标点  Y 鼠标点击y坐标点  Event Handler  private void Form_MouseDown(object sender, System.WinForms.MouseEventArgs e)  {  switch (e.Button)  {  case MouseButtons.Left:  MessageBox.Show(this,"Left Button Click");  break;  case MouseButtons.Right:  MessageBox.Show(this,"Right Button Click" );  break;  case MouseButtons.Middle:  break;  default:  break;  }  }  在你的WinForm中测试你的程序,你会看到通过代理事件被关联了。  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  class I  {  public I(){}  ~I() {}  public void IDoLoveYou()  {System.Console.WriteLine("I do love You");}  public void why(){System.Console.WriteLine("why?");}  }  class HER  {  public HER(){}  ~HER() {}  public void IDo()  {System.Console.WriteLine("...............");}  public void slient(){System.Console.WriteLine(".........");}  }  class TELEPHONE  {public delegate void heartchat();  public TELEPHONE(){}  ~TELEPHONE(){}  public void hello(){System.Console.WriteLine("yesterday night,i telephone to my girlfriend"); }  }  class chat{  static void Main() {  I i=new I();  HER her=new HER();  TELEPHONE telephone =new TELEPHONE();  telephone.hello();  TELEPHONE.heartchat tell=new TELEPHONE.heartchat(i.IDoLoveYou);  tell();  TELEPHONE.heartchat answer=new TELEPHONE.heartchat(her.IDo);  answer();  TELEPHONE.heartchat ask=new TELEPHONE.heartchat(i.why);  ask();  TELEPHONE.heartchat noanswer=new TELEPHONE.heartchat(her.slient);  noanswer();  }  }   

    最新回复(0)