代码之家  ›  专栏  ›  技术社区  ›  Todd Main

如何通过Codedom实现“Handles”

  •  2
  • Todd Main  · 技术社区  · 14 年前

    我一直在尝试如何使用Codedom将处理程序添加到方法中,但进展不大。

    我想通过Codedom重现的方法是:

    Private Sub Startup() Handles btnStart.Click
        ''# Do work
    End Sub
    

    该方法非常容易创建:

    Dim StartupMethod As New CodeMemberMethod
    StartupMethod.Name = "Startup"
    StartupMethod.Attributes = MemberAttributes.Private
    

    但我不知道怎么加上 Handles btnStart.Click CodeAttachEventStatement 但我不相信这能起到什么作用 Handles 在一个方法上。

    有人知道如何做到这一点吗?

    编辑 :下面的解决方案适用于VB,但不适用于C,因为处理程序希望处理事件而不是方法。

    1 回复  |  直到 14 年前
        1
  •  3
  •   Community    7 年前

    句柄只是一个语法糖vb.net版为您提供方便。 在引擎盖下,它被转换为:

    AddHandler btnStart.Click, AddressOf Startup
    

    http://msdn.microsoft.com/en-us/library/system.codedom.codeattacheventstatement.aspx

    Workaround for VB.NET partial method using CodeDom?