我对senderWinform控件中参数的用途感到困惑,例如:
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
End Sub
Run Code Online (Sandbox Code Playgroud)
我明白我可以sender通过做某事来验证是什么:
If TypeOf sender Is Label Then
'Execute some code...
End If
Run Code Online (Sandbox Code Playgroud)
但是,当它为我生成子程序时,是否有充分的理由将发送者包含在每个控件中?换句话说,我双击一个表格,我得到了Private Sub form_load (sender....) 和 e As System.EventArg.
这两个参数有哪些常见用法?他们总是需要吗?
谢谢,
达扬D.
Ry-*_*Ry- 17
sender 包含事件的发件人,因此如果您有一个方法绑定到多个控件,您可以区分它们.
例如,如果您有十个按钮并想将其文本更改为"您点击了我!" 当你点击其中一个时,你可以为每一个使用一个单独的处理程序,每次使用不同的按钮名称,但是一次处理所有这些处理器会好得多:
Private Sub Button_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click, Button3.Click, Button4.Click, Button5.Click, Button6.Click, Button7.Click, Button8.Click, Button9.Click
DirectCast(sender, Button).Text = "You clicked me!"
End Sub
Run Code Online (Sandbox Code Playgroud)
e 指的是使用过的事件的事件参数,它们通常以可在其上获得的属性/函数/方法的形式出现.
在此示例中,标签文本属性将包含为我们的页脚样式设置的BorderColor GridView,其FooterRow(根据作为事件参数参数的属性发送的行确定)使用GridView DataSource绑定数据.
Private Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
If e.Row.RowType = DataControlRowType.Footer Then
lblFooterColor.Text = e.Row.Style("BorderColor")
End If
End Sub
Run Code Online (Sandbox Code Playgroud)