VB.NET事件通道使用技巧须知

开发 后端
以下代码示例是关于VB.NET事件通道的相关操作。希望广大VB.NET热爱着们可以通过我们介绍的内容帮助大家提高对这方面知识的认识程度。

VB.NET事件通道的实现,可以通过多个类的操作来进行实现。对于初学者来说,这一技巧的应用往往会给他们在实际应用中带来一定的麻烦。下面就为大家详细解读一下具体的操作步骤,以方便大家参考学习。

C#代码示例如下:

  1. public delegate void showMsg    
  2. EventHandler(string msg);       
  3. class msg       
  4. {       
  5. public event showMsgEvent  
    Handler showMsgEvent;     
    public string execMsg(string msg)       
  6. {       
  7. if (showMsgEvent != null)       
  8. {       
  9. showMsgEvent(msg + "," +   
    DateTime.Now.ToString());       
  10. }       
  11. return string.Empty;       
  12. }       
  13. }       
  14. ===调用===       
  15. int i = 3;       
  16. msg[] myMsg;       
  17. private void button2_Click  
    (object sender, EventArgs e)       
  18. {       
  19. myMsg = new msg[i];       
  20. for(int j=0;j<i;j++)       
  21. {       
  22. myMsg[j]=new msg();       
  23. myMsg[j].showMsgEvent +=new   
    showMsgEventHandler(Form3_  
    showMsgEvent);       
  24. }       
  25. }       
  26. void Form3_showMsgEvent  (string msg)       
  27. {       
  28. MessageBox.Show(msg);       
  29. }       
  30. private void button3_Click  
    (object sender, EventArgs e)       
  31. {       
  32. for (int j = 0; j < i; j++)       
  33. {       
  34. myMsg[j].execMsg("good "   
    + j.ToString());       
  35. }       
  36. }   

转换后的VB.NET事件通道代码:

  1. Delegate Sub showMsgEventHandler
    ()Sub showMsgEventHandler
    (ByVal msg As String)  
  2. Class msgClass msg  
  3. Public name As String  
  4. Event msgEvent As showMsg
    EventHandler  
  5. Public Sub showMsg()Sub showMsg
    (ByVal msg As String)  
  6. MsgBox(msg + DateTime.Now.
    ToString() + " ," + name)  
  7. End Sub  
  8. End Class===调用===  
  9. Dim i As Integer = 0 
  10. Dim myContain As New List(Of msg)  
  11. Private Sub Button2_Click(
    )Sub Button2_Click(ByVal sender 
    As System.Object, ByVal e As 
    System.EventArgs) Handles Button2.Click  
  12. For i = 0 To 3 Step 1  
  13. Dim myMsg As New msg  
  14. myMsg.name = "name" & i.ToString()  
  15. myContain.Add(myMsg)  
  16. AddHandler myMsg.msgEvent, 
    New showMsgEventHandler(AddressOf 
    responseMsg)  
  17. Next i  
  18. End Sub  
  19. Private Sub responseMsg()Sub 
    responseMsg(ByVal msg As String)  
  20. MsgBox(msg)  
  21. End Sub  
  22. Private Sub Form1_Load()Sub Form1_Load
    (ByVal sender As System.Object, ByVal 
    e As System.EventArgs) Handles MyBase.Load  
  23. End Sub  
  24. Private Sub Button3_Click()Sub 
    Button3_Click(ByVal sender As 
    System.Object, ByVal e As System.
    EventArgs) Handles Button3.Click  
  25. For i = 0 To 3 Step 1  
  26. Dim myMsg As New msg  
  27. myMsg = myContain.Item(i)  
  28. myMsg.showMsg("good ")  
  29. Next i  
  30. End Sub 

VB.NET事件通道相关共用方法就为大家介绍到这里。

【编辑推荐】

  1. VB.NET压缩ZIP文件实际方式解析
  2. 彻底解决VB.NET窗体继承相关问题
  3. VB.NET使用MS Access技术指导
  4. VB.NET获取硬盘信息操作方式总结概览
  5. VB.NET序列化实现方式简单介绍

     

责任编辑:曹凯 来源: 博客园
相关推荐

2010-01-11 16:04:10

VB.NET使用wit

2010-01-18 18:20:49

VB.NET使用API

2009-10-23 17:03:18

VB.NET事件编程

2010-01-12 18:12:58

VB.NET事件

2009-11-04 09:32:12

VB.NET Auto

2009-11-11 13:24:29

VB.NET事件

2009-11-10 13:08:13

VB.NET编程技巧

2009-10-12 15:44:26

VB.NET动态编码技

2010-01-11 13:33:07

VB.NET使用数组

2009-11-03 13:48:02

VB.NET枚举

2009-10-26 15:57:07

VB.NET使用Ora

2011-06-16 15:14:17

VB.NET事件委托

2009-11-03 11:06:40

VB.NET事件

2010-01-22 17:22:49

VB.NET事件访问器

2010-01-18 16:33:57

VB.NET加密文件

2010-01-22 11:02:30

VB.NET创建新变量

2010-01-14 10:18:24

VB.NET List

2010-01-13 15:52:59

VB.NET浮动窗体

2010-01-14 13:59:01

2010-01-19 15:30:44

VB.NET比较运算符
点赞
收藏

51CTO技术栈公众号