我没有为VB.NET Windows窗体控件绕过/替换事件/处理程序';不创造?

我没有为VB.NET Windows窗体控件绕过/替换事件/处理程序';不创造?,vb.net,winforms,events,Vb.net,Winforms,Events,我正在从事一个项目,该项目需要一个具有多个列的TreeView控件。经过研究,似乎需要自定义控件,幸运的是,我在CodeProject上找到了一个很好的控件: 我一直非常依赖这个控件,但是遇到了一些bug,这些bug对于解决这些bug非常具有挑战性,因为我实际上无法访问开发人员非常乐意共享的项目文件中的源代码。我要处理的主要问题是,当控件的大小几乎调整到需要显示水平滚动条的位置时,会弹出一个崩溃。我注意到,在调整大小时,有一个大约10像素的死区,该控件将在需要之前稍微显示水平滚动条,这可能是因为

我正在从事一个项目,该项目需要一个具有多个列的TreeView控件。经过研究,似乎需要自定义控件,幸运的是,我在CodeProject上找到了一个很好的控件:

我一直非常依赖这个控件,但是遇到了一些bug,这些bug对于解决这些bug非常具有挑战性,因为我实际上无法访问开发人员非常乐意共享的项目文件中的源代码。我要处理的主要问题是,当控件的大小几乎调整到需要显示水平滚动条的位置时,会弹出一个崩溃。我注意到,在调整大小时,有一个大约10像素的死区,该控件将在需要之前稍微显示水平滚动条,这可能是因为在测量子树节点的缩进宽度时有些奇怪。在此状态下,滚动条出现,滚动框填满整个滚动条,不允许向左或向右滚动

这不会让我感到烦恼,只是如果您在这种状态下使用鼠标滚轮,它会抛出ArgumentOutOfRange异常并将我的应用程序拉下来:

“-1”的值对“Value”无效“值”应介于 “最小值”和“最大值”

我很想能够处理这个异常,但我对VB.NET和Windows窗体还很陌生,并且仍在学习如何处理事件。如果有一种直接的方法来覆盖onmouseheel事件或以其他方式处理可能由此触发的错误,那将是非常棒的。我们将非常感谢社区提出的建议或任何其他建议

如果有帮助,以下是错误堆栈跟踪的顶部部分:

System.Windows.Forms.ScrollBar.set_值(Int32值) WinControl.ListView.ContainerListView.OnMouseWheel(MouseEventArgs e)

ListTreeView控件(我正在使用的)继承自ContainerListView。ContainerListView的OnMouseWheel事件受保护。这是否意味着我无法覆盖它


谢谢,很高兴提供所需的任何其他信息。

提供了源代码,这是第二个下载链接。@Aybe你完全正确,但不幸的是,它受源代码管理,我无法打开项目文件。可能是我这边的用户错误,但无法解决。如果您正在谈论有关解决方案绑定到TFS服务器的消息框。。。从头开始,解压缩归档文件,删除所有文件的只读属性,打开解决方案,说“不”,确定,确定->解决方案将加载。在这种情况下,听起来像是用户错误。在任何情况下,我认为覆盖事件与访问源代码并不困难,但也许我错了。你有什么建议?有什么简单的方法吗?我刚开始用VB.NET热身,可以使用我能得到的所有建议。如果方法是可重写的,那么就不需要去编辑源代码,只需在调用基本方法之前完成你的工作,否则,就把手弄脏。