解决方案 »

  1.   

    draw方法:
     public void Draw()
            {
                this.BringToFront();     
                Pen pen = new Pen(Color.Black);
                pen.DashStyle = DashStyle.Dot;//设置为虚线,用虚线画四边,模拟微软效果
                g.DrawLines(pen, linePoints);//绘制四条边线            
                g.FillRectangles(Brushes.White, smallRects); //填充8个小矩形的内部
                foreach (Rectangle smallRect in smallRects)
                {
                    g.DrawEllipse(Pens.Black, smallRect);    //绘制8个小椭圆
                }         
            }这些代码都是引用别人的,他的是静态控件没问题,我的是从工具箱拖过来,动态生态的。
      

  2.   

    楼主是虚框拖动,不是控件移动,因此你的试试是对不上号的。至于为啥闪,因为楼主的移动虚框效果是通过重绘虚框来实现的,而清除以前绘制的虚框又是通过父控件的刷新来实现的,这个刷新太频繁导致的闪。因此要根本解决就必须改变实现方式,那个虚框移动要通过重绘来实现,但是清除之前的虚框不能刷新父控件,怎么办呢?很简单,每次绘制虚框之前,将所位置虚框的范围的颜色记录下来,清除它就用之前记录的颜色还原。这样小部分的绘制效率非常高,根本不会有闪的感觉。
    还有一个方法,如果你要求不高,可以使用Windows API提供的虚框效果。
      

  3.   


    不好意思,是我没说清楚。我要实现类似VS拖控件,然后可以单击控件,显示一个虚线框,然后可以通过虚框调整大小跟移动。也可以拉鼠标选中多个控件,集体操作,如对齐。我的虚框是一个自定义用户控件,当单击时才new一个,调用他的draw。
    你的方法好像行不通
    我是在别人代码基础上改的,第一次用GDI绘图,不太懂,
      

  4.   

    这个问题纠结了快一个星期了。现在情况是这样:因为有背景图片,如果绘之前用原来的颜色覆盖,就会跟图片不吻合;用g.clear会把背景图清除了,这时候如果再加上背景图,闪的厉害;还有就是用容器的reflesh(),这样也是会闪。有没有其他办法啊。哪位高手愿意不吝赐教啊,加我QQ吧:704931990快崩溃了,求打救啊。
      

  5.   


     public void Set()
            {
                this.BringToFront();     
                Pen pen = new Pen(Color.Black);
                pen.DashStyle = DashStyle.Dot;//设置为虚线,用虚线画四边,模拟微软效果
                g.DrawLines(pen, linePoints);//绘制四条边线            
                g.FillRectangles(Brushes.White, smallRects); //填充8个小矩形的内部
                foreach (Rectangle smallRect in smallRects)
                {
                    g.DrawEllipse(Pens.Black, smallRect);    //绘制8个小椭圆
                }         
            }
      

  6.   

     ajax是不是webform的东东? winform 可以用么?
      

  7.   

    winform不行....winform闪烁肯定是你代码没写好....
      

  8.   

    rubber rectangle
    搜codeproject.com
      

  9.   

    我也是这样的问题,顶下
    还带一个问题,就是动态调用的自定义控件(重绘问题),缩放的时候闪烁问题,我想将控件上的图片先存到缓存
    中,但不知道该怎么去画                                         如何在动态调用的自定义控件上用GDI画图