PictureBox,Image,Graphics,DC之间是什么关系?

dzweather 2013-09-26 12:16:26
一直不明白PictureBox,Image,Graphics,DC它们到底指的是什么?
DC与内存DC又是什么?


Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim bp As New Bitmap(PictureBox1.Width, PictureBox1.Height)
Dim gr As Graphics = Graphics.FromImage(bp)
gr.DrawString("Hello World", Me.Font, Brushes.Red, 20, 33)
bp.Save("D:\1.bmp")
gr.Dispose()
bp.Dispose()
End Sub


曾经看了一个通俗的比喻,什么画布,画笔,笔刷等。


那么上面的例子又如何形象比喻?
猜测如下:
DC 画布(刷新消失)
内存DC 画布(刷新不消失)这个与上面DC都是在内存中,为啥叫内存DC
bmp 画出的作品
pen/brush 作图工具
graphic 作图方式方法(技巧)
image 这个又比喻成什么呢?(picturebox1.image)












为了使上面画的同时显示在picturebox上,增加了一行代码:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim bp As New Bitmap(PictureBox1.Width, PictureBox1.Height)
Dim gr As Graphics = Graphics.FromImage(bp)
gr.DrawString("Hello World", Me.Font, Brushes.Red, 20, 33)
PictureBox1.Image = bp '增加此句
bp.Save("D:\1.bmp")
gr.Dispose()
bp.Dispose()
End Sub

结果出错了,原因是什么?



如果想深入理解这些概念,请推荐一本通俗书籍,谢谢!
...全文
187 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2013-09-26
  • 打赏
  • 举报
回复
PictureBox,实际上是一个Windows窗体 Image图像的基类,用来描述抽象的图像这个概念 Graphics是DC在.NET上的封装,好比PictureBox是Window在.NET上的封装一样。 DC(设备上下文)或者Graphics代表一个画布,你可以通过窗体、内存图片、打印机等各种支持绘图的对象获取其各自的DC。

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧