如何使用鼠标保持和释放检查TrackBar滑动

Sae*_*ani 3 c# mouse mouseevent trackbar winforms

我的WinForms程序中有一个跟踪栏,通过移动它可以刷新一个庞大而耗时的方法.看看这段代码:

trackBar_ValueChanged(object sender, EventArgs e)
{
     this.RefreshData();
}
Run Code Online (Sandbox Code Playgroud)

这条轨道酒吧有20个台阶.如果用户抓住轨迹栏的滑块并在我的情况下从20拉到0,"刷新数据"将执行20次,虽然它在结束"刷新数据"值为0的过程时显示正确的数据,我想做类似的事情它仅在trackBar滑块释放时调用'RefreshData',因此它不会处理轨迹栏上释放点的所有步骤.

任何有关实现这一目标的帮助和提示都将得到满足!谢谢.

Vol*_*Sen 5

怎么样:

Boolean user_done_updating = false;

private void MytrackBar_ValueChanged(object sender, EventArgs e)
{
    user_done_updating = true;
}

private void MytrackBar_MouseUp(object sender, MouseEventArgs e)
{
    if (user_done_updating)
    {
        user_done_updating = false;
        //Do Stuff
    }
}
Run Code Online (Sandbox Code Playgroud)