You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET如何在自定义子过程中获取事件发送方Sender名称

问题原因

sender是按钮点击事件处理方法的局部参数,作用域仅限Button2_Click方法内部,你定义的独立子过程Hello30没有声明对应的形参来接收这个值,自然无法直接访问。

修复方案

给Hello30方法添加接收事件源的形参,在调用方法时把事件里的sender作为实参传入即可。另外注意你代码里Replace的匹配字符串写错了:按钮控件的名称前缀是Button,不是Hello,如果要按照Button1的逻辑提取名称里的数字,需要替换正确的前缀。如果确实需要点击后弹出“30”,把对应按钮的Name属性设为Button30就能直接得到结果。

修复后的可运行代码:

Private Sub Button2_Click(sender As Object, e As RoutedEventArgs) Handles Button2.Click
    ' 调用公共方法时传入事件源sender
    Hello30(sender)
End Sub

' 为方法添加sender形参,接收传入的事件触发对象
Sub Hello30(sender As Object)
    ' 将sender强转为Button类型,提取名称中的数字部分弹窗
    MsgBox(CType(sender, Button).Name.Replace("Button", ""))
End Sub

内容的提问来源于stack exchange,提问作者Markowitz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 02:48:37