【发布时间】:2016-05-03 15:42:25
【问题描述】:
我对鼠标滚轮事件有很大的问题。我试图找到任何形式的参考,但总是找到关于此事的不同主题的答案。我为整个表单创建了一个鼠标滚轮事件(这也是全屏的,但无论鼠标在哪里,它都应该工作)-MouseWheel+=ChangeLength;(或MouseWheel += new MouseEventHandler(ChangeLength);,没关系)并设置断点它的第一行,只是为了看看它是否有效。
没有。
我打开了一个空白项目来测试它,令人惊讶的是,它做到了!然后我寻找问题的根源,发现设计器中只有两行代码在成功触发事件和根本不触发事件之间有所不同。这两行是-
this.rater.TabIndex = 15;
this.rater.Visible = false;
如果这些行中的任何一个未注释,滚动鼠标滚轮时不会发生任何事情,但如果两者都被删除或注释,它工作得很好。使用Focus()、点击屏幕、更改设计器之外的属性和其他已知方法均无济于事。
我需要补充一点,rater 不只是一个常规控件,这可能是这个奇怪问题的根源。它是一个名为ShapeRater 的自定义控件。我真的不明白Visible 和TabIndex 属性为什么以及如何导致它,它们完全不相关!另外,我删除了其中一位评分者(导致问题),因为另一位很好,但一旦删除,之前正常的一位开始导致此问题。
有人知道为什么会发生这种情况以及如何解决吗?
非常感谢,如果我写得不够准确,请见谅。这是我在这个网站上的第一个问题。
【问题讨论】:
标签: c# winforms mousewheel visible tabindex