纠结了好久,实在是找不出来解决办法,所以请教下大家。
问题是这样的:
我在panel面板上动态添加了几个button,当与button相关的一些值发生改变时,会触发button报警事件(就是在以button为中心,画个圆),可当我调试的时候发现当鼠标移动到那些button上时,那个圆颜色会变深,移出时也一样,好像是引发了panel的重绘事件,可我的报警程序就是在panel_paint中写的,请问大家有没办法解决这个问题?
先谢谢大家

解决方案 »

  1.   

    你想要什么效果,panel上画,不会影响button,你是不是画到button上了
      

  2.   

    我就是以button的中心点为圆心画了个实心圆
    Graphics myGraphics = panel1.CreateGraphics();
    Point center;
    int r_x = 100, r_y = 100;
    SolidBrush myBrush = new SolidBrush(Color.FromArgb(100, 150, 0, 0));center = new Point((int)(rdrBtn.Location.X - r_x / 2 + rdrBtn.Size.Width / 2),
              (int)(rdrBtn.Location.Y - r_y / 2 + rdrBtn.Size.Height / 2));
    myGraphics.FillEllipse(myBrush, center.X, center.Y, r_x, r_y);
    但显示是应该没影响的啊
    关系是这样的:button在panel上,我在panel上画图,画图的依据就是button是否处于报警状态,是的时候我就以button为圆心画个圆,画圆的操作时在panel_paint里面的。
    问题是,我的鼠标移动到panel上的button上时,panel上所有我画的圆的颜色就会变深,因为触发了panel的重绘事件,我想问的就是有没有办法让鼠标移动到或移出button的时候不要引发panel的重绘操作,谢谢
      

  3.   

    那就是你Panel里面画图的函数有问题
      

  4.   

        在绘制的时候判断一下应该就可以了吧if(xx){~~~~~}   在button事件发生时 去确定xx的值 然后在绘制的时候判断   应该不难吧。
      

  5.   

    不触发不太好实现,就像你点 button按钮又不想触发button的Click事件一样;
    不过你可以在重绘事件中加判断,在鼠标移入时给个状态变量,重绘事件中可以用这个变量判断是否执行你这段代码