代码之家  ›  专栏  ›  技术社区  ›  Txugo

ASP.NET单击事件句柄-如何传入参数VB.NET?

  •  0
  • Txugo  · 技术社区  · 17 年前

    我知道我必须这样做:

    AddHandler bGetSessionMembers.Click, AddressOf bGetSessionMembers_click
    

    AddHandler bGetSessionMembers.Click, AddressOf bGetSessionMembers_click(Me, "My ID")
    

    我想你可以在C语言中做到#

    bGetSessionMembers.Click += bGetSessionMembers_click(Me, "My ID")
    

    2 回复  |  直到 17 年前
        1
  •  2
  •   Andrew Hare    17 年前

    这里有一个更好的方法。首先,像平常一样系好按钮:

    AddHandler Button1.Click, AddressOf Click
    AddHandler Button2.Click, AddressOf Click
    

    然后创建一个 Click 方法如下:

    Sub click(ByVal o As Object, ByVal e As EventArgs)
        Dim button As Button = TryCast(o, Button)    
        If button IsNot Nothing Then
    
        End If
    End Sub
    

    Button -你可以抓住它 ID 或者其他你喜欢的东西。

    我想你可能误解了事件在.NET中是如何连接的。执行此操作时:

    AddHandler Button2.Click, AddressOf Click
    

    您没有调用该方法 点击 ,则将委托传递给 Button.Click 将委托添加到委托调用列表的事件。当 按钮 点击 按钮

    由于您不是通过委托调用方法的人,因此您无法更改传入的内容。你最好的选择是使用 Object 按钮 就像我上面说的。

        2
  •  1
  •   Richard    17 年前

    Sub click(ByVal o As Object, ByVal e As EventArgs)
        Dim button As Button = TryCast(o, Button)    
        If button IsNot Nothing Then
            Select Case button.CommandName
              Case "Command1"
                'Your cool feature here :)
              Case "Command2"
                'You could check button.CommandArgument to get additional data
              Case Else
                'Runs if button.CommandName isn't handled by your code
            End Select
        End If
    End Sub
    

    安迪-希望你不介意我在这里再扔些东西:)

    理查德。

    推荐文章