Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何修复事件延迟_C#_Event Handling_Hover - Fatal编程技术网

C# 如何修复事件延迟

C# 如何修复事件延迟,c#,event-handling,hover,C#,Event Handling,Hover,我正在为一个学校项目制作一个表格预订系统,我正在使用一个图片框列表来表示表格。 我已将一个悬停事件链接到这些PictureBoxes,当我悬停时,BackColor属性将更改 List<PictureBox> pb = new List<PictureBox> { pictureBox1, pictureBox2, pictureBox3}; foreach (PictureBox p in pb) { p.BorderStyle = BorderStyle.F

我正在为一个学校项目制作一个表格预订系统,我正在使用一个图片框列表来表示表格。 我已将一个悬停事件链接到这些PictureBoxes,当我悬停时,BackColor属性将更改

List<PictureBox> pb = new List<PictureBox> { pictureBox1, pictureBox2, pictureBox3};

foreach (PictureBox p in pb)
{
    p.BorderStyle = BorderStyle.Fixed3D;
    p.BackColor = Color.White;
    p.MouseHover += new EventHandler(mouseOn);
}

private void mouseOn(object sender, EventArgs e)
{
    ((PictureBox)sender).BackColor = Color.Green;
}
List pb=新列表{pictureBox1,pictureBox2,pictureBox3};
foreach(以pb为单位的PictureBox p)
{
p、 BorderStyle=BorderStyle.Fixed3D;
p、 背景色=颜色。白色;
p、 MouseHover+=新事件处理程序(mouseOn);
}
私有void鼠标(对象发送方,事件参数e)
{
((PictureBox)sender.BackColor=Color.Green;
}

一切都很好,只是当我将鼠标悬停在上面时,触发事件需要1秒。有没有办法立即触发事件?

如果要立即触发事件,请使用
鼠标指针
事件。根据设计,您的鼠标应该保持静止一段时间,以便触发
MouseHover
事件

顺便说一句,系统信息。MouseHoverTime为
MouseHover
事件保留延迟

一切都很好,除了当我把鼠标放在上面时,触发事件需要1秒的时间

这就是定义:

当鼠标指针停留在控件上时发生

“休息”部分是一秒钟的延迟。我不知道有什么方法可以调整鼠标在被算作悬停之前停留在控件上的时间长度

如果您不希望有任何延迟(即,您希望鼠标进入控件区域时立即引发事件),则应改用

从这两个事件的文档中:

鼠标事件按以下顺序发生:

  • 滑鼠

  • 鼠标移动

  • 鼠标悬停/鼠标向下/鼠标滚轮

  • 鼠标

  • 滑鼠