
它们是自动生成的,我不需要考虑太多,但如果我想从表单的其他部分调用其中一个事件,那么我需要为这些参数提供值 – 这并不容易,因为我仍然不确定他们的意思是什么
这是我要打电话的事件:
Private Sub stringbutton_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles stringbutton.Click Dim outString As String Select Case stringTextBox.Text Case "" outString = "You entered an empty string" Case "10" outString = "10" Case Else outString = "Your string is not covered by the cases" End Select strResultTextBox.Text = outStringEnd Sub
这是调用方法:
Private Sub stringTextBox_KeyDown(ByVal sender As System.Object,ByVal e As System.windows.Forms.KeyEventArgs) Handles stringTextBox.KeyDown If e.KeyCode = Keys.Enter Then Call stringbutton_Click(Me,Me) '<<(Me,Me) is my incorrect attempt End IfEnd Sub
我应该使用什么参数以及为什么?
解决方法 不要从代码的其他部分调用事件处理程序!这是非常草率的编码.创建一个单独的方法,使用您需要的参数执行所需的 *** 作,并从事件处理程序和表单的任何其他部分调用它,例如Private Function String GetResponseMessage(ByVal input as String) Select Case input Case "" Return "You entered an empty string" Case "10" Return "10" Case Else Return "Your string is not covered by the cases" End SelectEnd FunctionPrivate Sub stringbutton_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles stringbutton.Click Dim outString As String=GetResponseMessage(stringTextBox.Text) strResultTextBox.Text = outStringEnd Sub
sender和e参数是事件处理程序的标准签名.发件人是引发事件的对象,e包含事件的数据. .NET中的所有事件都包含此类参数.
EventArgs是所有事件参数的基类,并没有对事件说太多.有几个事件使用派生类来提供更多数据,例如. KeyPress事件使用KeyEventArgs类,该类包含在其KeyChar属性中按下的实际键.
这是基本的.NET编程,你应该花一些时间来理解.NET事件和windows Forms,而不是信任自动生成的代码
总结以上是内存溢出为你收集整理的vb.net – 什么是事件参数“sender”和“e”全部内容,希望文章能够帮你解决vb.net – 什么是事件参数“sender”和“e”所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)