从鼠标滚轮事件获取滚动条位置
本文关键字:获取 滚动条 位置 事件 鼠标 | 更新日期: 2023-09-27 18:26:55
我有一个winform面板。我想捕捉面板的滚动和鼠标滚轮事件。对于这两种情况,我都想检查滚动条的位置。
当滚动条位于底部(滚动结束时…)时,控件应触发事件。
我已经为面板做了这件事。滚动如下:
private void Panel1_Scroll(object sender, ScrollEventArgs e)
{
if (e.NewValue == Panel1.VerticalScroll.Maximum - Panel1.VerticalScroll.LargeChange+1)
{
//do some operation
}
}
但是对于MouseEventArgs,没有任何值(e.newvalue)来指示滚动条的位置。
如何从鼠标滚轮事件中获取滚动条位置?
同样根据我的要求,两个事件调用都有相同的逻辑实现,所以我想写一次逻辑。
我怎样才能做到这一点?
经过进一步分析,我发现panel1.VerticalScroll.Value
相当于CCD_ 3的CCD_。
因此,对于代码的可重用性,可以使用以下内容:
private void panel1_Scroll(object sender, ScrollEventArgs e)
{
panel1_scrollcheck(e.NewValue);
}
private void panel1_MouseWheel(object sender, MouseEventArgs e)
{
panel1_scrollcheck(panel1.VerticalScroll.Value);
}
private void panel1_scrollcheck(int currPos)
{
if (currPos == panel1.VerticalScroll.Maximum - panel1.VerticalScroll.LargeChange+1)
{
//Put the logic here
}
}
尝试使用Panel
的VerticalScroll
属性。
void MouseWheel(object sender, MouseEventArgs e)
{
if (_panel.VerticalScroll.Value > _panel.VerticalScroll.Maximum - _panel.VerticalScroll.LargeChange)
MessageBox.Show("Bottom");
}