【发布时间】:2017-06-29 17:32:31
【问题描述】:
我有一个 FlowLayoutPanel,用户可以在垂直轴上滚动它。我有以下事件处理程序,用于查看用户滚动到的位置并提供 405px 块内的位置编号:
private void ChangedParentFlowPanel_Scroll(object sender, ScrollEventArgs e)
{
int NewPos = e.NewValue;
int range = (NewPos - 1) / 405 + 1;
CurrentIndex_Changed = range;
tCounter.Text = CurrentIndex_Changed.ToString();
}
当用户使用垂直栏滚动时,它工作得很好,并且完全符合我的需要。我遇到的问题是我需要用相同的值更新 tCounter 但这次是当用户使用鼠标滚轮滚动时。我尝试了以下方法,但这似乎只为鼠标滚动时的位置提供 Y 轴值,而不是滚动本身的位置:
private void ChangedParentFlowPanel_Wheel(object sender, MouseEventArgs e)
{
int NewPos = e.Location.Y;
MessageBox.Show(NewPos.ToString());
int range = (NewPos - 1) / 405 + 1;
CurrentIndex_Changed = range;
tCounter.Text = CurrentIndex_Changed.ToString();
}
问题是......当使用鼠标滚轮时,如何获取 ChangedParentFlowPanel 中滚动条的滚动位置?
【问题讨论】:
-
使用面板的 AutoScrollPosition 属性。
标签: c# scroll flowlayoutpanel