我有两个panel,大panel1,小panel2,panel2在panel1里面,然后panel2里面还有一个picturebox和一个button,像这样情况是:我想在鼠标进入panel1、panel2、pieturebox、button的时候,都让panel1背景变为红色,同时button可见,默认的button不可见
在panel1、panel2、pieturebox、button的MouseEnter事件里都让panel1变为红色,在MouseLeave事件里判断鼠标是否在其他的控件里面,如果都不在则让panel1变为其他颜色,否则还是红色
然后在panel1的backgroundcolorchanged事件里面判断颜色是否为红色,如果是红色,就让button可见当鼠标进入button的时候,系统会认为鼠标离开了panel1、panel2、picturebox,然后panel1的颜色变为了其他颜色,button被置为不可见了(事实上颜色还是红色,但是button已经不可见了,感觉应该是颜色延迟的问题),不可见的button又响应不了MouseEnter函数我想让鼠标进入button的时候button仍然可见 这个问题怎么解决???buttonpanel可见性鼠标
在panel1、panel2、pieturebox、button的MouseEnter事件里都让panel1变为红色,在MouseLeave事件里判断鼠标是否在其他的控件里面,如果都不在则让panel1变为其他颜色,否则还是红色
然后在panel1的backgroundcolorchanged事件里面判断颜色是否为红色,如果是红色,就让button可见当鼠标进入button的时候,系统会认为鼠标离开了panel1、panel2、picturebox,然后panel1的颜色变为了其他颜色,button被置为不可见了(事实上颜色还是红色,但是button已经不可见了,感觉应该是颜色延迟的问题),不可见的button又响应不了MouseEnter函数我想让鼠标进入button的时候button仍然可见 这个问题怎么解决???buttonpanel可见性鼠标
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent(); button1.Visible = false; panel1.MouseEnter += TargetMouseEnter;
panel2.MouseEnter += TargetMouseEnter;
pictureBox1.MouseEnter += TargetMouseEnter;
button1.MouseEnter += new EventHandler(button1_MouseEnter); panel1.MouseLeave += TargetMouseLeave;
} private void TargetMouseLeave(object sender, EventArgs e)
{
SetControlState(this.BackColor, false);
} private void TargetMouseEnter(object sender, EventArgs e)
{
SetControlState(Color.Red, true);
} private void button1_MouseEnter(object sender, EventArgs e)
{
SetControlState(this.BackColor, true);
} private void SetControlState(Color bgColor, bool visible)
{
panel1.BackColor = bgColor;
button1.Visible = visible;
}
}