C# 如何使鼠标滚轮工作而不必首先聚焦窗体?
我有一个窗体,上面只有一个ReportViewer控件。显示表单时,如果单击报告,则可以使用鼠标滚轮垂直滚动 我希望表单一出现就可以滚动 我试过以下方法,但没有骰子C# 如何使鼠标滚轮工作而不必首先聚焦窗体?,c#,winforms,reportviewer,C#,Winforms,Reportviewer,我有一个窗体,上面只有一个ReportViewer控件。显示表单时,如果单击报告,则可以使用鼠标滚轮垂直滚动 我希望表单一出现就可以滚动 我试过以下方法,但没有骰子 private void ReportViewer_Load(object sender, EventArgs e) { rptViewer.Focus(); } private void ReportViewer_Activated(object sender, EventArgs
private void ReportViewer_Load(object sender, EventArgs e)
{
rptViewer.Focus();
}
private void ReportViewer_Activated(object sender, EventArgs e)
{
rptViewer.Focus();
}
将代码放在表单的构造函数中,就在
InitializeComponent()之后代码>:
是否尝试调用rptView.Activate()
另外,也可能是在加载事件完成后,表单得到了关注(我想我以前在这方面遇到过问题)。一种解决方案是创建一个一次性计时器,它在加载方法运行时启动,在1ms后启动,然后停止,尽管它肯定不是很优雅。当计时器启动时,它将激活/聚焦ReportViewer
您还可以尝试将鼠标滚轮事件处理程序添加到表单中。触发事件时,向ReportViewer发送滚动消息以向上或向下滚动。然后,不管您的ReportViewer是否具有焦点,当窗体具有焦点时,它(应该)始终滚动。设置后rptViewer.focus
调用SendKeys.Send(Chr(Keys.Tab))
将焦点从菜单移动到预览区域
rptViewer.Select();