当我按住鼠标按钮并滚动它们时,如何让按钮改变背景色

时间:2014-07-03 02:01:11

标签: c# winforms

好的我有很多按钮。我已经使用mouse_click事件交替改变浅蓝色和浅灰色之间的背景颜色:

    private void alternateColor(Control ctrl)
    {
        switch (ctrl.BackColor.Name)
        {
            case "LightGray":
                ctrl.BackColor = Color.LightBlue;
                break;
            default:
                ctrl.BackColor = Color.LightGray;
                break;
        }
    }
    private void matrixButtonClick(object sender, MouseEventArgs e)
    {
        alternateColor(sender as Control);              
    }

我希望能够做的是每次将鼠标悬停在按钮上并按住鼠标左键时,按钮的颜色会改变一次。因此,如果我按住左键,移动说6个浅灰色按钮,它们会变成淡蓝色等。

我有这个,但它不起作用:

    private void matrixMouseHover(object sender, EventArgs e)
    {
        if (Control.MouseButtons == System.Windows.Forms.MouseButtons.Left)
        {
            alternateColor(sender as Control);
        }
    }

感谢任何帮助,谢谢:)

1 个答案:

答案 0 :(得分:1)

我认为你误解了什么" hover"在这种情况下意味着一个开始。 "悬停"将鼠标指针放在某物上并不意味着什么。这意味着将鼠标指针放在某物上并停止。您只是在谈论MouseEnter事件,而不是MouseHover