使面板控制透明

时间:2013-01-10 01:14:06

标签: c# winforms panel opacity

我有一个面板控件,上面有背景图片。我希望它改变不透明度我将鼠标移到它上面。我怎样才能做到这一点?我试过了:

  btnExit.BackColor = Color.FromArgb(20,63,63,63);
  btnExit.BackColor = Color.FromArgb(20);

但没有任何改变..任何想法为什么这不起作用?这个面板坐在另一个面板上,也有背景图片。谢谢!

1 个答案:

答案 0 :(得分:1)

据我所知,可以用你的方法完成,但我想你必须刷新控件。

btnExit.Refresh();

编辑:

首先设置按钮FlatStyle to Flat

this.btnExit.FlatStyle = System.Windows.Forms.FlatStyle.Flat;

然后创建两个名为btnExit_MouseHover和btnExit_MouseLeave的函数:

void btnExit_MouseHover(object sender, EventArgs e)
{
  btnExit.BackColor = Color.FromArgb(20, 63, 63, 63);
  btnExit.Refresh();
}

void btnExit_MouseLeave(object sender, EventArgs e)
{
  btnExit.BackColor = Color.FromArgb(100, 63, 63, 63);
  btnExit.Refresh();
}

要激活这些功能,请添加两个EventHandler:

btnExit.MouseHover += new EventHandler(btnExit_MouseHover);
btnExit.MouseLeave += new EventHandler(btnExit_MouseLeave);

这样就可以了,现在你只需要将背景颜色改为你喜欢的颜色;)。