我在C#中编写了一个Windows计算器。 我想当鼠标在按钮上移动时,它会改变按钮的颜色,当鼠标移动到其他颜色的按钮时,它会恢复原来的颜色。
答案 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库。如果你确实选择使用它(通常不建议用于像计算器这样的简单程序,但它确实可以完成这项工作),你应该这样做:
声明按钮的纹理和其他一些东西(按钮矩形等)。
Texture2D My_texture;
Rectangle buttonBox;
bool isMouseIn = false;
在LoadContent()方法中加载按钮的纹理。
My_texture = Content.Load<Texture2D>("name of your resource");
处理Update()方法中的输入。
MouseState currentMouseState = Mouse.GetState();
if(buttonBox.Contains(currentMouseState.Position))
{
isMouseIn = true;
}
在Draw()方法中绘制按钮。
spriteBatch.Begin();
if(isMousein)
{
spriteBatch.Draw(My_texture, buttonBox, Color.Red;
}
else
{
spriteBatch.Draw(My_texture, buttonBox, Color.Blue);
}
spriteBatch.End();
最好使用Windows Forms,因为它更适合这样一个简单的程序,并且不需要非常精美或灵活的图形界面。