我重写了form groupBox控件改变外框染色,但是当窗体被挡上之后再回来就不能刷新了,这是什么原因呢?

解决方案 »

  1.   

    你怎么写的,把染色放到OnPaint事件中,以便重绘
      

  2.   

    我是这样写的,已经放过了
     superman  10:37:06
        protected override void OnPaint(PaintEventArgs e)
            {
               
                base.OnPaint(e);
                e.Graphics.Clear(base.BackColor);            Rectangle Rtg_LT = new Rectangle();            Rectangle Rtg_RT = new Rectangle();            Rectangle Rtg_LB = new Rectangle();
                Rectangle Rtg_RB = new Rectangle();            Rtg_LT.X = 0; Rtg_LT.Y = 7; Rtg_LT.Width = 10; Rtg_LT.Height = 10;
                Rtg_RT.X = e.ClipRectangle.Width - 11; Rtg_RT.Y = 7; Rtg_RT.Width = 10; Rtg_RT.Height = 10;
                Rtg_LB.X = 0; Rtg_LB.Y = e.ClipRectangle.Height - 11; Rtg_LB.Width = 10; Rtg_LB.Height = 10;            Rtg_RB.X = e.ClipRectangle.Width - 11; Rtg_RB.Y = e.ClipRectangle.Height - 11; Rtg_RB.Width = 10; Rtg_RB.Height = 10;            Color color = Color.FromArgb(140, 198, 64);            Pen Pen_AL = new Pen(color, 1);  //修改线宽            Pen_AL.Color = color;            Brush brush = new HatchBrush(HatchStyle.Divot, color);            e.Graphics.DrawString(base.Text, base.Font, brush, 6, 0);            e.Graphics.DrawArc(Pen_AL, Rtg_LT, 180, 90);            e.Graphics.DrawArc(Pen_AL, Rtg_RT, 270, 90);            e.Graphics.DrawArc(Pen_AL, Rtg_LB, 90, 90);            e.Graphics.DrawArc(Pen_AL, Rtg_RB, 0, 90);            e.Graphics.DrawLine(Pen_AL, 5, 7, 6, 7);            e.Graphics.DrawLine(Pen_AL, e.Graphics.MeasureString(base.Text, base.Font).Width + 3, 7, e.ClipRectangle.Width - 7, 7);            e.Graphics.DrawLine(Pen_AL, 0, 13, 0, e.ClipRectangle.Height - 7);            e.Graphics.DrawLine(Pen_AL, 6, e.ClipRectangle.Height - 1, e.ClipRectangle.Width - 7, e.ClipRectangle.Height - 1);            e.Graphics.DrawLine(Pen_AL, e.ClipRectangle.Width - 1, e.ClipRectangle.Height - 7, e.ClipRectangle.Width - 1, 13);  
            }