我是C#的新手,我试图在鼠标离开时改变menustrip项目的颜色。选中后的按钮。但我不能将MouseLeave用作布尔值,因为它是一个事件。它告诉“MouseLeave”只能出现在+ ='的左侧。有小费吗?
这是我尝试做的事情:
if (e.Item.MouseLeave)
{
using (Brush b = new SolidBrush(Color.FromArgb(80, 80, 80)))
{
e.Graphics.FillRectangle(b, e.Graphics.ClipBounds);
}
}
答案 0 :(得分:0)
由于MouseLeave是控件上的事件,请尝试以下操作:
在创建控件时,向事件处理程序添加一个方法:
control.MouseLeave += control_MouseLeft;
然后在control_MouseLeft方法中定义要执行的操作。
void control_MouseLeft(objet sender, EventArgs e)
{
using (Brush b = new SolidBrush(Color.FromArgb(80, 80, 80)))
{
e.Graphics.FillRectangle(b, e.Graphics.ClipBounds);
}
}
答案 1 :(得分:0)
你可以有一个全局布尔值:
private void frm_Load(object sender, EventArgs e)
{
ctrl.MouseEnter += ctrl_MouseEnter;
ctrl.MouseLeave += ctrl_MouseLeave;
}
private bool bMouseInside = false;
private void ctrl_MouseEnter(object sender, EventArgs e)
{
bMouseInside = true;
}
private void ctrl_MouseLeave(object sender, EventArgs e)
{
bMouseInside = false;
}
在您的代码中使用:
if (!bMouseInside)
{
// using (Brush b etc..
}