鼠标悬停时更改按钮颜色

时间:2015-12-01 15:59:38

标签: c#

我在C#中编写了一个Windows计算器。 我想当鼠标在按钮上移动时,它会改变按钮的颜色,当鼠标移动到其他颜色的按钮时,它会恢复原来的颜色。

3 个答案:

答案 0 :(得分:4)

假设您使用的是Windows.Forms,您可以为MouseEnter的{​​{1}}和MouseLeave事件添加事件处理程序,并设置Button' s { {1}}财产相应:

Button

答案 1 :(得分:1)

下面的代码对我有用。

private void shipdbutton_MouseHover(object sender, EventArgs e)
{
    shipdbutton.BackColor = Color.White;
}

private void shipdbutton_MouseLeave(object sender, EventArgs e)
{
    shipdbutton.BackColor = Color.FromArgb(32, 38, 71); // ****add the color you want here.**
}

答案 2 :(得分:0)

您并不是非常具体,但如果您愿意,可以使用MonoGame库。如果你确实选择使用它(通常不建议用于像计算器这样的简单程序,但它确实可以完成这项工作),你应该这样做:

  1. 声明按钮的纹理和其他一些东西(按钮矩形等)。

    Texture2D My_texture; Rectangle buttonBox; bool isMouseIn = false;

  2. 在LoadContent()方法中加载按钮的纹理。

    My_texture = Content.Load<Texture2D>("name of your resource");

  3. 处理Update()方法中的输入。

    MouseState currentMouseState = Mouse.GetState(); if(buttonBox.Contains(currentMouseState.Position)) { isMouseIn = true; }

  4. 在Draw()方法中绘制按钮。

    spriteBatch.Begin(); if(isMousein) { spriteBatch.Draw(My_texture, buttonBox, Color.Red; } else { spriteBatch.Draw(My_texture, buttonBox, Color.Blue); } spriteBatch.End();

  5. 最好使用Windows Forms,因为它更适合这样一个简单的程序,并且不需要非常精美或灵活的图形界面。