我有一个由左侧的各种控件组成的表单,主体是一个浏览器窗口,显示由其他控件创建的 HTML 文件。生成文件后,我尝试将焦点设置在浏览器窗口上,以便滚轮工作。
在每次ODD尝试时都有效,而在EVEN尝试中则无效。
有两个生成输出的代码路径(都从单击按钮开始),都归结为:
Browser.Focus();
Browser.DocumentText = RenderAsHTML();
第一个按钮也会更新左侧的列表框,第二个按钮不会。奇/偶模式与按下哪个按钮无关。
这里到底发生了什么?
在尝试下面的响应然后向它扔东西时,我发现了一些非常有趣的东西:
系统认为窗口已聚焦。Browser.Focused 即使不接受滚轮消息也会返回 true。
为了让它更奇怪,我做了一个测试,在其中扔了一个显示一些变量的消息框——当那个框被清除回到屏幕时,滚轮在 100% 的时间内工作。仅删除MessageBox.Show 行使其恢复到旧行为。