在Winform中当容器的可视高度无法显示所有控件并且容器的AutoScroll属性设置为True的情况下,但点击容器内某个未显示完整的控件时,会出现容器的滚动条自动下滚的情况。
这是由于控件获得焦点时,容器的ScrollToControl事件被ScrollableControl类自动触发,用于更好的显示焦点控件的内容。
我们可以通过重写ScrollToControl事件来处理。
以Panel为例子,重写Panel控件。
1
2
3
4
5
6
7
|
class
PanelNoScrollOnFocus : Panel
{ protected
override
System.Drawing.Point ScrollToControl(Control activeControl)
{
return
DisplayRectangle.Location;
}
} |