ajm*_*ajm 1 c# coordinates winforms
没有过于复杂的简单问题,我试图让标签颜色随着鼠标悬停在图像的某个区域上而改变.我的代码应该解释一下情况:
private void picboxMain_MouseHover(object sender, MouseEventArgs e)
{
int x1 = e.X;
int y1 = e.Y;
if ((x1 >= 155 && x1 <= 179) && (y1 >= 145 && y1 <= 160))
{
lblX.ForeColor = Color.Green;
lblY.ForeColor = Color.Green;
}
}
Run Code Online (Sandbox Code Playgroud)
但是它不接受获取鼠标位置并分配给x1和y1变量的eX和eY参数.为什么不允许这样的变量赋值?我成功地使用了以下几乎完全相同的功能吗?
private void picboxMain_MouseUp(object sender, MouseEventArgs e)
{
int x1 = e.X;
int y1 = e.Y;
if ((x1 >= 155 && x1 <= 179) && (y1 >= 145 && y1 <= 160))
{
Form2 Form2 = new Form2();
Form2.Show();
}
}
Run Code Online (Sandbox Code Playgroud)
为什么这样做而不是另一个?
删除MouseHover事件处理程序,它不包含MouseEventArgs在第二个参数中,然后MouseMove使用这样的代码添加处理程序:
private void picboxMain_MouseMove(object sender, MouseEventArgs e)
{
int x1 = e.X;
int y1 = e.Y;
Color color = (x1 >= 155 && x1 <= 179) && (y1 >= 145 && y1 <= 160) ? Color.Green : Color.Black;
lblX.ForeColor = color;
lblY.ForeColor = color;
}
Run Code Online (Sandbox Code Playgroud)
编辑:也MouseLeave应该处理.