我有以下问题:我有一个具有特定颜色的面板,比如红色。当用户按下鼠标时,这个面板的颜色被存储在一个变量中。然后用户移动,他的鼠标仍然按下,移到另一个面板。当他在那里释放鼠标时,该面板应该获得已存储在变量中的第一个背景颜色。我的代码看起来像这样:
public Color currentColor;
private void ColorPickMouseDown(object sender, MouseEventArgs e)
{
Panel pnlSender = (Panel)sender;
currentColor = pnlSender.BackColor;
}
private void AttempsColorChanger(object sender, MouseEventArgs e)
{
Panel pnl = (Panel)sender;
pnl.BackColor = currentColor;
}
我需要首先确定发送者,因为有很多可能的面板可以触发此事件。第一个 MouseDown 方法工作得很好,颜色很好地存储在变量中。然而,当用户执行我上面描述的操作时,第二个甚至不会被触发。当服务器单击第二个面板时,它可以工作(我猜在单击中也有一个 MouseUp 部分)。
这里有什么问题?为什么之前用户按住鼠标键没有触发事件?