c# - 阻止滚动条的值更改事件处理程序,直到滚动条被释放
问题描述
假设,我需要通过滚动条的移动来执行资源密集型任务。
private void hScrollBar_ValueChanged(object sender, EventArgs e)
{
ReCalculate();
}
void ReCalculate()
{
try
{
int n = hScrollBar1.Value;
int f0 = hScrollBar2.Value;
int theta = hScrollBar3.Value;
int a = hScrollBar4.Value;
//... resource-intensive task which uses scroll-bar's values.
}
catch
{
}
}
我面临的问题是,事件处理程序会随着滚动条的微小变化而执行。
我需要阻止事件处理程序的执行,直到释放鼠标。
因此,我尝试使用 mouse-enter 和 mouse-leave 事件处理程序,例如:
bool ready = false;
private void hScrollBars_MouseEnter(object sender, EventArgs e)
{
ready = false;
}
private void hScrollBars_MouseLeave(object sender, EventArgs e)
{
ready = true;
}
以及像这样的检查:
void ReCalculate()
{
if(ready)
{
try
{
int n = hScrollBar1.Value;
int f0 = hScrollBar2.Value;
int theta = hScrollBar3.Value;
int a = hScrollBar4.Value;
//... resource-intensive task which uses scroll-bar's values.
}
catch
{
}
}
}
但是,它不起作用。
我怎样才能做到这一点?
解决方案
推荐阅读
- vue.js - 使用多个指令向组件添加数据属性
- java - 弹簧靴 | 为多个文件提供文件路径时,Spark.read 失败
- tomcat - 为什么 atlassian 竹子可以部署大于 50MB 的战争文件?
- javascript - 如何在视图(html页面)中将json响应显示为信息卡?
- c++ - 在 Fortran 中为特定声明类型概括您的操作
- r - 即使我们有超过 24 小时,如何将字符转换为 HH:MM:SS?
- regex - 是否有用于在两个给定表达式之间查找特定字符的 bash 脚本?
- python - 如何编写将三元组 ['a','b','c'] 转换为单个字符串“abc”的函数。
- c++ - 在 C++ 中,我的控制台游戏角色在游戏字段数组内移动时不会停止
- macos - OSX Notarize 可执行文件(不是应用程序)