【问题标题】:Button Control event handler按钮控件事件处理程序
【发布时间】:2012-05-02 08:37:23
【问题描述】:

我是 vb.net 的新手,想知道这个问题。当您单击 Web 表单上的按钮控件时,Visual Studio 会自动为您在后面的代码中输入此代码。

     Protected Sub btnSave_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnFlightInfo.Click
     end Sub

比如说,我想从另一个方法调用这个方法。我该怎么做?我知道 sender 是实际的按钮对象,但 e 是什么?这是我到目前为止在另一个潜艇中的内容。只是想更好地了解这种方法的工作原理。

btnSave_Click(btnSave, ??what would you put there??)

【问题讨论】:

    标签: asp.net vb.net


    【解决方案1】:
    Protected Sub btnSave_Click(ByVal sender As Object, ByVal e As EventArgs)    Handles       btnSave.Click,btnsecond.Click
    

    dim btn as button=ctype(sender,button) ifenter code herebtn.text="save" 否则如果 btn.text="Second" 万一 ' 调用你的私有方法 结束子

    '查看基于发件人,您可以找出您点击了哪个按钮 '如果你必须从你调用的另一个方法调用 ' btnsave_click(什么都没有)

    'as For What Is 事件参数是 'EventArgs 表示与该事件相关的数据,可用于将参数、状态信息传递给事件处理程序,以便处理代码决定要做什么。在这种情况下,它只是表示空事件参数的 EventArgs,但是对于“例如,如果您有 ImageButton 的 Click 处理程序,您会注意到它的事件参数”为您提供了对 X 和 Y 坐标的访问权限。换句话说,事件参数可以“由具有事件相关数据的更具体的类表示,具体取决于控件

    【讨论】:

      【解决方案2】:

      调用事件不是一个好主意,将代码从事件移动到另一个私有方法并在两个地方调用它。

      Protected Sub btnSave_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnFlightInfo.Click
          ' Call your private method
      End Sub
      
      Protected Sub AnotherMethod
          ' Call your private method again here
      End Sub
      

      【讨论】:

        【解决方案3】:

        你将使用委托 sender 是按钮,e 是触发的事件 sender 是 listener,event 是 catcher

        【讨论】:

          【解决方案4】:

          只需传递EventArgs.Empty,点击按钮没有什么重要的。不过,您可以考虑反转它:拥有另一个包含通用逻辑的 Sub,并从 Click 事件处理程序和您的其他方法中调用它。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-03-15
            • 1970-01-01
            • 2012-08-17
            • 2015-04-09
            • 1970-01-01
            相关资源
            最近更新 更多