怎么实现部分重画 
我做一个控件是自己画的一组 Rectangle 实现鼠标点击事件 
但是 在们控制每个小矩形 重画 而其他的 不重画

解决方案 »

  1.   

    如果是画在Image上:
    graphics.DrawImage(Image srcImage, Rectangle des ,Rectangle src, GraphicsUnit.Pixel);
      

  2.   

    region好你是有好多部分重绘的属性。
      

  3.   

    region好像是有好多部分重绘的属性。
      

  4.   

    base.OnPaint(e);
                if (m_bStart)
                {
                    DrawButton();//第一次加载画
                    m_bStart = false;
                }            foreach (Student stu in _stuList)//为了保存矩形框和背景
                {
                    RoundRect.DrawRoundRect(e.Graphics, Color.Navy, DrawPen, stu.StuRectangle, m_nR);
                    if (!_intList.Contains(stu.StuID))
                    {
                        RoundRect.FillRoundRect(e.Graphics, Color.GreenYellow, stu.StuRectangle, m_nR);
                    }
                }
                
                if (m_nid != -1)//画想要重画部分
                {
                    RoundRect.DrawRoundRect(e.Graphics, Color.Black, DrawPen, _stuList[m_nid].StuRectangle, m_nR);
                    DrawBrackground(e, m_nid);
                }
    这样做是想不了效果  我要怎么做呢 
      

  5.   

    base.OnPaint(e);
                if (m_bStart)
                {
                    DrawButton();//第一次加载画
                    m_bStart = false;
                }            foreach (Student stu in _stuList)//为了保存矩形框和背景
                {
                    RoundRect.DrawRoundRect(e.Graphics, Color.Navy, DrawPen, stu.StuRectangle, m_nR);
                    if (!_intList.Contains(stu.StuID))
                    {
                        RoundRect.FillRoundRect(e.Graphics, Color.GreenYellow, stu.StuRectangle, m_nR);
                    }
                }
                
                if (m_nid != -1)//画想要重画部分
                {
                    RoundRect.DrawRoundRect(e.Graphics, Color.Black, DrawPen, _stuList[m_nid].StuRectangle, m_nR);
                    DrawBrackground(e, m_nid);
                }
    这样做是想不了效果  我要怎么做呢