C#的GDI画图问题
这个screenImage是一个图片,这个代码原理应该是每次只显示一个矩形框,可是现在是仍然保留着上次的矩形框,这是为什么privatevoidpictureBox1_M...
这个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;
} 展开
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;
} 展开
4个回答
展开全部
没有清空画布 就会保留上次的绘画记录
加上这一句 里面忘了有没有参数了 如果有 可以添加清空后的颜色
sIma.Clear();
加上这一句 里面忘了有没有参数了 如果有 可以添加清空后的颜色
sIma.Clear();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
screen = screenImage;已经说明了Graphics类修改的图片为screenImage而并不是screen。
追问
这句就是把screenImage赋给screen,就是screen的内容和screenImage内容一样.现在看起来就像是screen只是个引用
追答
这语句就是一个引用并不是复制数据,如果是复制screen的内容,请使用:
screen = (Bitmap)screenImage.Clone;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我运行的时候没有看到这个问题,我只看到一个矩形框。
追问
能把代码发给我吗.我运行的时候一直是很多矩形框
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
screen = screenImage; 这句是干什么的
更多追问追答
追问
这句就是把screenImage赋给screen,就是screen的内容和screenImage内容一样.现在看起来就像是screen只是个引用
追答
每次重新加载一下screenImage就可以了
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
locationNewX = MousePosition.X;
locationNewY = MousePosition.Y;
Bitmap screen = new Bitmap(this.Width,this.Height);
screenImage = new Bitmap(Bitmap.FromFile("F:/17.png"));//每次都重新载入图片
screen = screenImage;
Graphics sIma = Graphics.FromImage(screen);
sIma.DrawRectangle(p, 100, 100, locationNewX - 100, locationNewY - 100);
pictureBox1.Image = screen;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询