0

我有一个由左侧的各种控件组成的表单,主体是一个浏览器窗口,显示由其他控件创建的 HTML 文件。生成文件后,我尝试将焦点设置在浏览器窗口上,以便滚轮工作。

在每次ODD尝试时都有效,而在EVEN尝试中则无效。

有两个生成输出的代码路径(都从单击按钮开始),都归结为:

Browser.Focus();
Browser.DocumentText = RenderAsHTML();

第一个按钮也会更新左侧的列表框,第二个按钮不会。奇/偶模式与按下哪个按钮无关。

这里到底发生了什么?

在尝试下面的响应然后向它扔东西时,我发现了一些非常有趣的东西:

系统认为窗口已聚焦。Browser.Focused 即使不接受滚轮消息也会返回 true。

为了让它更奇怪,我做了一个测试,在其中扔了一个显示一些变量的消息框——当那个框被清除回到屏幕时,滚轮在 100% 的时间内工作。删除MessageBox.Show 行使其恢复到旧行为。

4

1 回答 1

0

Winforms c# - Set focus to first child control of TabPage会发现一个类似的问题,最好的答案是说你必须把

 ActiveControl = yourControlThatReceiveFocus;
于 2012-01-18T16:51:56.503 回答