我有一个只有ReportViewer控件的表单。显示表单时,如果单击报表,则可以使用鼠标滚轮垂直滚动。
我希望能够在表单出现后立即滚动。
我已尝试过以下内容,但没有骰子......
private void ReportViewer_Load(object sender, EventArgs e)
{
rptViewer.Focus();
}
private void ReportViewer_Activated(object sender, EventArgs e)
{
rptViewer.Focus();
}
答案 0 :(得分:1)
在InitializeComponent();
:
rptViewer.Select();
答案 1 :(得分:0)
您是否尝试过调用rptView.Activate()?
也可能是您的表单在加载事件完成后获得焦点(我认为之前我已经遇到过问题)。一种解决方案是,尽管绝对不优雅,但是创建一个一次性的Timer,它在Load方法运行时启动,并在1 ms后触发,然后停止。当Timer触发时,它将激活/聚焦ReportViewer。
您还可以尝试将MouseWheel事件处理程序添加到表单中。触发事件时,向ReportViewer发送滚动消息以向上或向下滚动。然后,无论ReportViewer是否具有焦点都无关紧要,它(应该)始终在表单具有焦点时滚动。
答案 2 :(得分:0)
设置rptViewer.Focus
调用SendKeys.Send(Chr(Keys.Tab))
后,将焦点从菜单移至预览区域。