解决方案 »

  1.   

    不好意思,没说清楚。鼠标快速的从这些panel上划过时就会出现多个panel颜色改变,这个不是我想要的,怎么解决,或者还有别的方法实现这个效果?
      

  2.   

    我做过一个类似的,但是我改变的是PictureBox,Foreimage用PNG,MoveLeave是BackImage为Null,移动的时候给张背景图
      

  3.   

    我做过一个类似的,但是我改变的是PictureBox,Foreimage用PNG,MoveLeave是BackImage为Null,移动的时候给张背景图
    有foreimage属性吗?
      

  4.   

    我做过一个类似的,但是我改变的是PictureBox,Foreimage用PNG,MoveLeave是BackImage为Null,移动的时候给张背景图
    有foreimage属性吗?

    写过了,是Image
      

  5.   

    这个简单啊,告诉你办法
    在每个Panel_MouseOver事件中加入
    pane1.BackColor=...
    pane2.BackColor=...
    就是把别的panel控件的背景色变回去就行了。
      

  6.   


    试了一下,如果鼠标没有在panel上停留直接进入到picturebox上颜色还是不改变,总不能把picturebox和label控件都加上吧。
    Panel_MouseOver的时间只读还没法修改
      

  7.   


    试了一下,如果鼠标没有在panel上停留直接进入到picturebox上颜色还是不改变,总不能把picturebox和label控件都加上吧。
    Panel_MouseOver的时间只读还没法修改答对了。 要么就只要用个label 放图片 autosize false  text对齐方式bottom mid
      

  8.   

    我下载看了一下,这个问题比较严重。
    首先,你用的是一个 Panel 上面叠了一个 PictureBox,然后这个问题的就是由于 PictureBox 和 Panel 这两者的 MouseEnter 和 MouseLeave 相互之间的切换过于频繁引起的,当你鼠标移动过快的时候,事实上,在这个事件里面,他还要进行相应的计算,反应速度跟不上你的节奏,因为在 PictureBox 的 侧边和 Panel 的侧边的距离很短,鼠标一个瞬移,就会出问题。
    这个实现不好,真要组合图片,我建议你使用 UserControl,这样就不会混乱了。
      

  9.   

    WinForm  透明背景色 是:  Color.Trans****—— 将 背景色,设置为 这个 值,你的 按钮 也就 透明了。
      

  10.   


    试了一下,如果鼠标没有在panel上停留直接进入到picturebox上颜色还是不改变,总不能把picturebox和label控件都加上吧。
    Panel_MouseOver的时间只读还没法修改
    当然要都加上,这个问题是很常见的,解决办法就是这样,每个控件都加上不过不用写这样的代码了
    你把这个做成一个组合控件就行了,控件上放picturebox和label,然后在usecontrol_mouseover加上this.backColor=..
    然后在picturebox_mouseover加上onmouseover(e);
      

  11.   

    可以对pannel添加鼠标响应。判断鼠标的位置是否是在panel内,然后做响应的处理