C#在pictureBox控件上画的直线被其他窗口挡一下,直线就被擦除掉,要重新画。

怎么可以解决这样的问题,即使被挡住,画的线都还在的。... 怎么可以解决这样的问题,即使被挡住,画的线都还在的。 展开
 我来答
爱栀竹的人
2013-07-30 · TA获得超过1352个赞
知道大有可为答主
回答量:1743
采纳率:0%
帮助的人:995万
展开全部
方法1:写在Paint事件中,这样就不会消失在PictureBox中。

方法2:绘制到图形对象里,而不是简单是用画笔画线
看下面的代码,s_Bmp可以持久显示,s_pen则不行,
不好意思我这是vb.net代码,道理一样,不难看懂...
private sub s_Bmp()
Dim Bmp As Bitmap
Dim Gra As Graphics

Dim Pen As New Pen(Color.White)

Bmp = New Bitmap(PictureBox1.Width, PictureBox1.Height)

Gra = Graphics.FromImage(Bmp)

Dim Dia As Single = Math.Min(PictureBox1.Height, PictureBox1.Width) * 0.5!

Gra.DrawArc(Pen, (PictureBox1.Width - Dia) / 2.0!, (PictureBox1.Height - Dia) / 2.0!, Dia, Dia, 0, 360)

Gra.DrawLine(Pen, 0, 0, PictureBox1.Width / 2.0!, PictureBox1.Height / 2.0!)

PictureBox1.Image = Bmp

end sub

private sub s_Pen()
Dim Gra As Graphics = PictureBox1.CreateGraphics()
Dim Pen As New Pen(Color.Magenta)

Dim Dia As Single = Math.Min(PictureBox1.Height, PictureBox1.Width) * 0.5!

Gra.DrawRectangle(Pen, (PictureBox1.Width - Dia) / 2.0!, (PictureBox1.Height - Dia) / 2.0!, Dia, Dia)

end sub
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式