首页 新闻 会员 周边 捐助

C#的GDI画图问题

0
悬赏园豆:10 [待解决问题]

这个screenImage是一个图片,这个代码原理应该是每次只显示一个矩形框,可是现在是仍然保留着上次的矩形框,这是为什么

 private void pictureBox1_MouseMove(object sender, MouseEventArgs e)

        {

                locationNewX = MousePosition.X;

                locationNewY = MousePosition.Y;

                Bitmap screen = new Bitmap(this.Width,this.Height);

                screen = screenImage;

                Graphics sIma = Graphics.FromImage(screen);

                sIma.DrawRectangle(p, 100, 100, locationNewX - 100, locationNewY - 100);

                pictureBox1.Image = screen;

}

现在一拖鼠标就会出现很多框,为什么会这样

C#
Sun_LuoFlow的主页 Sun_LuoFlow | 初学一级 | 园豆:161
提问于:2013-06-29 10:43
< >
分享
所有回答(3)
0

我觉得应该先清空,然后再画上去。

duguao | 园豆:124 (初学一级) | 2013-06-29 10:54

现在的问题是,screen为什么运行起来像是screenImage的引用,而不是内容一样

支持(0) 反对(0) Sun_LuoFlow | 园豆:161 (初学一级) | 2013-06-29 13:11
0
dudu | 园豆:29361 (高人七级) | 2013-06-29 11:12
0

 private void pictureBox1_MouseMove(object sender, MouseEventArgs e)

        {

      //如果必要每次都用到srceenImage , 建议每次Copy一个srceenImage,然后修改显示,不改变原有的srceenImage

                locationNewX = MousePosition.X;

                locationNewY = MousePosition.Y;

                Bitmap screen = new Bitmap(this.Width,this.Height);

                screen = screenImage;//这里完全就是引用 screenImage 了。。所以,你实例化的new Bitmap()完全没用只是浪费了空间,去掉这句话,估计就好了

                Graphics sIma = Graphics.FromImage(screen);

                sIma.DrawRectangle(p, 100, 100, locationNewX - 100, locationNewY - 100);

                pictureBox1.Image = screen;

}

SeeMore | 园豆:313 (菜鸟二级) | 2013-06-30 16:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册