Rob*_*and 5 c# controls winforms
我有一大堆C#代码应该在继承自UserControl的类中设置VerticalScroll.Value.当类的任何子对象改变大小时,它会被调用.该类的AutoScroll属性设置为true.
public void ScrollTo(int top)
{
if (top >= this.VerticalScroll.Minimum && top <= this.VerticalScroll.Maximum)
{
this.VerticalScroll.Value = top;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,在遍历代码时,有时会设置this.VerticalScroll.Value,有时它会保留调用此方法之前的值.
这是VS中的一个错误,还是存在值将忽略尝试设置它的已知条件?
谢谢,罗布
sto*_*one 20
我遇到了同样的问题,并在一些开发论坛中找到了解决方案.设置VerticalScroll.Value后,您必须调用PerformLayout()以使滚动控件更新.这样做:
scrollingcontrol.VerticalScroll.Value = top;
scrollingcontrol.PerformLayout();
Run Code Online (Sandbox Code Playgroud)
这比设置.Value两次更有意义,尽管它似乎具有相同的效果.
小智 5
我遇到了同样的问题,我在 MSDN 网页上找到了一个解决方案(不允许我发布链接,因为我是新用户)。
建议的解决方案是分配给 .Value 两次,它对我有用:
int newVerticalScrollValue =
pDashboard.VerticalScroll.Value - pDashboard.VerticalScroll.SmallChange;
pDashboard.VerticalScroll.Value = newVerticalScrollValue;
pDashboard.VerticalScroll.Value = newVerticalScrollValue;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6983 次 |
| 最近记录: |