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

使用WithEvents定义对象实例时其XML注释不显示,该如何解决?

问题原因

VB.NET编译器处理WithEvents关键字修饰的字段时,会在编译阶段自动生成一个同名的隐藏包装属性,用于内部事件绑定逻辑。你手写的XML注释默认附加在原始字段上,而IDE智能提示优先读取自动生成的包装属性的注释,该属性无注释所以会出现不显示的问题。

解决方案

  • 方案1:字段属性拆分(无需升级IDE,兼容所有版本)
    将WithEvents字段设为私有内部成员,额外定义公共属性对外暴露,把XML注释添加到公共属性上即可正常显示:
''' <summary>
''' 表示一个<see cref="System.Windows.Forms.Button"/>控件,点击后会显示关联的<see cref="System.Windows.Forms.CheckBox"/>控件,用户可通过这些复选框切换元素状态。
''' </summary>
Public Property DropDownButton As System.Windows.Forms.Button
    Get
        Return _dropDownButton
    End Get
    Set(value As System.Windows.Forms.Button)
        _dropDownButton = value
    End Set
End Property

' 内部带事件绑定的私有字段,用于编写事件处理逻辑
Private WithEvents _dropDownButton As New System.Windows.Forms.Button
  • 方案2:升级IDE(无需修改业务代码)
    该问题是Visual Studio旧版本的已知Bug,将Visual Studio升级到2022 17.4及以上版本即可直接修复,原有WithEvents字段的XML注释会正常被智能提示识别。
  • 方案3:补充特性兼容提示
    如果暂时无法升级IDE也不想调整代码结构,可以额外添加Description特性作为补充,在属性窗口和部分智能提示场景下可展示说明:
''' <summary>
''' 表示一个<see cref="System.Windows.Forms.Button"/>控件,点击后会显示关联的<see cref="System.Windows.Forms.CheckBox"/>控件,用户可通过这些复选框切换元素状态。
''' </summary>
<Description("表示一个Button控件,点击后会显示关联的CheckBox控件,用户可通过这些复选框切换元素状态。")>
Public WithEvents DropDownButton As New System.Windows.Forms.Button

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:45:03