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

VB.Net中如何将RectangleShape的Click事件传递至UserControl的Click事件

解决RectangleShape点击触发UserControl Click事件的问题

问题核心是:RectangleShape属于VB.Net PowerPack控件,并非标准WinForms控件,它的点击事件不会自动冒泡到父级UserControl,而Button这类标准控件会默认传递事件。

下面是两种直接可行的解决方法:

方法一:直接触发UserControl的Click事件

  1. 在用户控件设计器中选中你的RectangleShape
  2. 在属性面板的事件列表里找到Click事件,双击进入代码编辑
  3. 在事件处理方法中添加以下代码:
Private Sub RectangleShape1_Click(sender As Object, e As EventArgs) Handles RectangleShape1.Click
    Me.OnClick(EventArgs.Empty)
End Sub

点击RectangleShape时,就会直接调用UserControl的OnClick方法,触发其Click事件。

方法二:传递鼠标事件参数(如需完整交互信息)

如果需要把点击时的鼠标位置等参数也传递给UserControl,可以使用MouseClick事件:

Private Sub RectangleShape1_MouseClick(sender As Object, e As MouseEventArgs) Handles RectangleShape1.MouseClick
    ' 触发UserControl的MouseClick事件
    Me.OnMouseClick(e)
    ' 同时触发Click事件(如果需要的话)
    Me.OnClick(EventArgs.Empty)
End Sub

额外注意

  • 确认项目已引用Microsoft.VisualBasic.PowerPacks组件,RectangleShape依赖该组件才能正常工作
  • 两种方法都会让Shape的点击行为和按钮点击完全一致,触发UserControl上绑定的所有Click事件逻辑

内容的提问来源于stack exchange,提问作者Mark Allan Wright

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 16:42:35