我正在使用我的c#应用程序中的reportviewer类,并且有一个问题对于修复不是必不可少的,但是我想弄清楚。
假设我发布了一个新表单,其中包含一个完全停靠的reportviewer控件,当表单加载时,报表查看器已刷新并显示我的报表。
几乎在所有情况下,报告都会比表单的垂直大小更长,因此会有垂直滚动条。
我想要做的是找出一种方法来为报表视图控件焦点或选择提供“报表区域”部分,以便在表单加载时 - 我可以立即使用鼠标上的滚轮上下移动报告。
实际发生的事情是滚动条在我点击报告区域之前不起作用。
是否有人知道如何关注该特定区域?
以下是我试图给该区域重点的一些代码......
int x = this._ReportViewer.Location.X + (this._ReportViewer.Width / 2);
int y = this._ReportViewer.Location.Y + (this._ReportViewer.Height / 2);
this._ReportViewer.RenderingComplete += delegate
{
this.OnMouseClick(new MouseEventArgs(MouseButtons.Left, 1, x, y, 1));
};
谢谢!
答案 0 :(得分:1)
浮现在脑海中的一个想法是递归遍历ReportViewer控件。点击报告区域后,将焦点设置为该控件。
以下是一个示例代码段:
//Call this function, by passing it your reportViewer control
private void RecurseControls(Control ctrl)
{
foreach (Control c in ctrl.Controls) { //Put breakpoint here to see the controls being looped
if (c is <TYPEOFCONTROLYOURLOOKINGFOR>) {
//CAST c AND SET FOCUS TO IT
}
if (c.HasChildren) { //recurse if children controls exist
CustomizeRV(c);
}
}
}